|
From: Tao W. <twa...@gm...> - 2016-01-18 12:22:23
|
Hi, Jörg,
For OS X, Here is the 'ioreg -l' output for the camera:
+-o PENTAX K-3@14300000 <class AppleUSBDevice, id 0x100000a10,
registered, matched, active, busy 0 (6 ms), retain 23>
{
"sessionID" = 14016892056132
"iManufacturer" = 1
"bNumConfigurations" = 1
"idProduct" = 356
"bcdDevice" = 256
"Bus Power Available" = 900
"USB Address" = 3
"bMaxPacketSize0" = 9
"iProduct" = 2
"iSerialNumber" = 3
"bDeviceClass" = 0
"Built-In" = No
"locationID" = 338690048
"bDeviceSubClass" = 0
"bcdUSB" = 768
"USB Product Name" = "PENTAX K-3"
"PortNum" = 3
"non-removable" = "no"
"IOCFPlugInTypes" =
{"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
"bDeviceProtocol" = 0
"IOUserClientClass" = "IOUSBDeviceUserClientV2"
"IOPowerManagement" =
{"DevicePowerState"=0,"CurrentPowerState"=3,"CapabilityFlags"=65536,"MaxPowerState"=4,"DriverPowerState"=3}
"Device Speed" = 3
"USB Vendor Name" = "RICOH IMAGING COMPANY, LTD."
"idVendor" = 9723
"IOGeneralInterest" = "IOCommand is not serializable"
"USB Serial Number" = "4860600"
"IOClassNameOverride" = "IOUSBDevice"
}
I don't think there is a similar device type for a camera under scsi
category, and plus the problem, I think maybe the best way to support
sending those vendor specific SCSI commands to camera on OS X is to write
my own kernel driver for it. It's a little bit too much for this project I
think.
Currently the project can work on Linux/Windows, not OS X. I was hoping
that I can find a more portable solution to support all those 3 platforms.
It seems that I cannot use 'libscg' for this purpose.
Anyway, thanks for your help.
Best Regards,
Tao Wang
On 18 January 2016 at 21:46, Joerg Schilling <
Joe...@fo...> wrote:
> Tao Wang <twa...@gm...> wrote:
>
> > Hi,
> >
> > I'm looking for a cross-platform SCSI communication solution for an open
> > source project, which communicate with Pentax camera via USB (Mass
> Storage)
> > SCSI Pass-through Interface, using 'F0' vendor specific SCSI commands.
> > Someone referenced me to 'libscg', which included in 'cdrtools' project.
>
> libscg is the oldest SCSI generic implementation (it turns 30 this summer)
> and
> it was initially created to send vendor unique commands.
>
> libscg allows to send any command on any target platform as long as the OS
> in question does not prevent this.
>
> > May I ask, what is the current state of 'libscg'? Can I use it for
> sending
> > vendor specific SCSI command cross-platform? Does it support current
> Linux
> > kernel 4.x? OS X 10.11? and Windows 10? Where should I start if I want to
> > use libscg in the project? Thanks.
>
> There recently have been reports about some USB-SCSI related kernel bugs in
> Linux (in special when you are using USB-3), but otherwise it is known to
> work.
> If you have specific problems on Linux, you need to ask the kernel people
> for
> help.
>
> Regarding OS X, the SCSI subsystem from Apple is a bit ideosyncratic and
> the
> clean interface from early development versions (thatwas taken from Next
> Step)
> has unfortunately been replaced by something that does not work in a
> universal
> way. In other words: OS X does not implement device type independent SCSI
> kernel structures.
>
> You will need to find out whether there is a similar interface for your
> device
> type as it exists for CD-ROM type devices, where the names are:
>
> IOCompactDiscServices/0 or IODVDServices/0 or IOBDServices/0
>
> (replace /0 by any valid instance number).
>
> I recommend to check the Apple device tree for matches...
>
> Let me explain the problem here: Even though a CD-ROM drive is if course
> also
> using the USB<->SCSI mass storage interface, it may be that the OS X
> kernel will
> not give you access to your device.
>
> Jörg
>
> --
> EMail:jo...@sc... (home) Jörg Schilling D-13353
> Berlin
> joe...@fo... (work) Blog:
> http://schily.blogspot.com/
> URL: http://cdrecord.org/private/
> http://sourceforge.net/projects/schilytools/files/'
>
|