Re: [linux-minidisc] scsi test tool using cdrtools/libscg
On Sat, Jun 05, 2010 at 05:21:04PM +0200, Adrian Glaubitz wrote:
> On Mon, May 31, 2010 at 07:58:26AM +0200, Thomas Arp wrote:
> > > On the other hand we still have the problem that apparently we cannot
> > > send any SCSI commands to non-CD/DVD/BD drives on MacOS X. We will
> > > need to patch cdrtools as well, so that it will also work with the
> > > HiMD. When connecting a USB cdrom, the drive is detected by "cdrecord
> > > -scanbus" so it's not an issue with the bus but rather with the drive
> > > type.
> > >
> > > Any ideas? Michael was already suggesting that it's a matter of
> > > cdrecord using the SCSI driver from MacOS which provides access to the
> > > optical drives only.
> >
> > Can you check the source code?
> >
> > Take a look at libscg/scsi-mac-iokit.c on line 137ff.
> > "LOCAL char *devnames[]" seems to hold the Services which are
> > used by libscg.
> > You can try to append "IOSCSIPeripheralDeviceNub" and test
> > if this works.
>
> I appended "IOSCSIPeripheralDeviceNub" and re-compiled
> cdrtools. However, cdrecord --scanbus still doesn't see the HiMD
> Walkman. However, it seems that you are on the correct trail.
>
> There is a command line utility called "ioreg" on MacOS X. Calling it
> with the HiMD Walkman connected results in:
>
> minimac2:~ zedv$ ioreg |grep Nub
> | | | +-o IOSCSIPeripheralDeviceNub <class IOSCSIPeripheralDeviceNub, id 0x0, registered, matched, active, busy 0 (539 ms), retain 6>
> | | | +-o com_sony_driver_SonyMagicGateNub <class com_sony_driver_SonyMagicGateNub, id 0x0, registered, matched, active, busy 0 (199 ms), retain 6>
> | | | | +-o ATADeviceNub@0 <class ATADeviceNub, id 0x0, registered, matched, active, busy 0 (225 ms), retain 6>
> | | | | +-o IOSCSIPeripheralDeviceNub <class IOSCSIPeripheralDeviceNub, id 0x0, registered, matched, active, busy 0 (62 ms), retain 6>
>
> So "IOSCSIPeripheralDeviceNub" is the correct interface to use. But
> for some reason, cdrecord doesn't see the HiMD Walkman even though it
> should be scanning that interface as well.
Ok, Michael had a better idea. He suggested to use
"IOBlockStorageServices" and not "IOSCSIPeripheralDeviceNub" and
voila, it works:
bash-3.2# /opt/schily/bin/cdrecord -scanbus
Cdrecord-ProDVD-ProBD-Clone 2.01.01a78 (i386-apple-macosx10.3.0) Copyright (C) 1995-2010 J�g Schilling
Using libscg version 'schily-0.9'.
scsibus1:
1,0,0 100) 'MATSHITA' 'DVD-R UJ-846 ' 'FM3J' Removable CD-ROM
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) *
1,6,0 106) *
1,7,0 107) *
scsibus3:
3,0,0 300) 'SONY ' 'Hi-MD WALKMAN ' '1000' Removable Disk
3,1,0 301) *
3,2,0 302) *
3,3,0 303) *
3,4,0 304) *
3,5,0 305) *
3,6,0 306) *
3,7,0 307) *
bash-3.2#
And, testing himdformat_scg:
bash-3.2# ./himdformat_scg 3,0,0
Cannot open scsi driver.
Hmm?! Am I missing something? I'm calling this as root so it can't be
a permissions thing.
I will continue to test anyway.
Adrian