From owner-freebsd-multimedia Sun Apr 28 9:49:14 2002 Delivered-To: freebsd-multimedia@freebsd.org Received: from workhorse.fictitious.org (workhorse.fictitious.org [209.66.129.230]) by hub.freebsd.org (Postfix) with ESMTP id 59F1537B41D; Sun, 28 Apr 2002 09:49:01 -0700 (PDT) Received: from workhorse.fictitious.org (localhost.fictitious.org [127.0.0.1]) by workhorse.fictitious.org (8.9.3/8.9.3) with ESMTP id MAA94567; Sun, 28 Apr 2002 12:48:51 -0400 (EDT) (envelope-from curtis@workhorse.fictitious.org) Message-Id: <200204281648.MAA94567@workhorse.fictitious.org> To: freebsd-scsi@FreeBSD.ORG, multimedia@FreeBSD.ORG Cc: curtis@fictitious.org Reply-To: curtis@fictitious.org Subject: Olympus USB camera success with some kernel mods Date: Sun, 28 Apr 2002 12:48:51 -0400 From: Curtis Villamizar Sender: owner-freebsd-multimedia@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org 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