Date: Sun, 28 Apr 2002 12:48:51 -0400 From: Curtis Villamizar <curtis@workhorse.fictitious.org> To: freebsd-scsi@FreeBSD.ORG, multimedia@FreeBSD.ORG Cc: curtis@fictitious.org Subject: Olympus USB camera success with some kernel mods Message-ID: <200204281648.MAA94567@workhorse.fictitious.org>
next in thread | raw e-mail | index | archive | help
FYI - this is just an informational message. Possible code to commit
in scsi_da.c. See below.
I just got an Olympus C700 working with the USB. I can mount the
flash and copy the files off it. I haven't tried gphoto or anything
else to control the camera.
The normal way to use it is just copy off the *.jpg files that would
appear in the dcim/100olymp/ directory (you'd see files there if I
hadn't just copied them and erased them from this flash).
[curtis@laptoy770 1] # mount -o ro -t msdos /dev/da0s1 /mnt
[curtis@laptoy770 2] # ls -ltR /mnt
total 8
drwxr-xr-x 1 root wheel 8192 Apr 27 20:53 dcim/
/mnt/dcim:
total 8
drwxr-xr-x 1 root wheel 8192 Apr 27 20:53 100olymp/
/mnt/dcim/100olymp:
[curtis@laptoy770 3] # ls -lR /mnt
total 8
drwxr-xr-x 1 root wheel 8192 Apr 27 20:53 dcim/
/mnt/dcim:
total 8
drwxr-xr-x 1 root wheel 8192 Apr 27 20:53 100olymp/
/mnt/dcim/100olymp:
[curtis@laptoy770 4] # umount /mnt
To make this work, the kernel needs:
options MSDOSFS
# SCSI peripherals
device scbus # SCSI bus (required)
device da # Direct Access (disks)
device pass # Passthrough device (direct SCSI access)
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device usb # USB Bus (required)
device ugen # Generic
device umass # Disks/Mass storage - Requires scbus and da
An edit has to be made to /sys/cam/scsi/scsi_da.c
{
/*
* Olympus Cameras quirks
*/
{T_DIRECT, SIP_MEDIA_REMOVABLE,
"OLYMPUS*", "C-700*", "*"},
/*quirks*/ DA_Q_NO_6_BYTE
}
I also added the following after the "match = cam_quirkmatch("
statement providing a confirmation in dmesg output after reboot.
printf("scsi quirks: %s - type %d med %s "
"vend \"%s\" prod \"%s\" ver \"%s\"\n",
match ? "match" : "none",
SID_TYPE((&cgd->inq_data)),
SID_IS_REMOVABLE((&cgd->inq_data)) ? "remov" : "fixed",
cgd->inq_data.vendor, cgd->inq_data.product,
cgd->inq_data.revision);
The printf is useful if for some reason you aren't getting the string
match right (if using a similar camera or USB/SCSI device).
That was all it took. Manually run the following before the mount:
usbdevs - make sure the camera is powered on and shows up
camcontrol rescan 0 - detect the scsi device (I did this on my
laptop but on a machine with scsi buses you'd get a higher number.
camcontrol tur da0 - check for unit ready.
If the unit doesn't indicate ready, chances are the DA_Q_NO_6_BYTE
quirk is not in effect. Recheck the kernel changes.
This might work with other Olympus USB only cameras. Probably would.
Curtis
ps - I haven't confirmed whether the camera is usable under an MS OS
and I have no intention to do so.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-multimedia" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200204281648.MAA94567>
