Thursday, 28 December 2006

Breakthrough? GPS-CS1 works on new Macbook

Update 29th December

I know some Mac owners have been considering buying a GPS-CS1, but have been put off because no-one has been able to get it to work on a Mac yet.

Well on new Core 2 Duo Macbooks, it seems it does work. For all other Mac owners, you might want to wait a few weeks. It's possible that your Mac may start to recognise the GPS-CS1 very soon.

See the details in the original post below for more info, but it appears that Kernel version 8.8.3 (on the new MacBook) supports the GPS-CS1. Now, Mac OS X version 10.4.9 is currently with ADC developers for testing - and this release is based on Kernel version 8.8.5

So it may be that all Mac OS X Tiger users will receive a software update to 10.4.9 soon (perhaps mid-January) that could fix the GPS-CS1.

Come back here once 10.4.9 is released to see if anyone can confirm this. Come back before then too just in case there are any earlier updates to this story.


...

If you've kept up to date with recent comments on this blog, you may have seen a comment from Meikel with the important development that the GPS-CS1 mounts as a removable drive on a brand new (Core Duo) Macbook running Mac OS X 10.4.8

Meikel has kindly provided me with lots of system and logging info from this system and I will post this in due course. However certain things stood out immediately.

First, looking at the ioreg output, it is significantly different at the IOMedia level and below:


| | | | | +-o GENERIC Card Memory R/W Media <class IOMedia, registered, matched, active, busy 0, retain count 8>
| | | | | | {
| | | | | | "Leaf" = Yes
| | | | | | "Writable" = No
| | | | | | "BSD Minor" = 3
| | | | | | "IOBusyInterest" = "IOCommand is not serializable"
| | | | | | "Preferred Block Size" = 512
| | | | | | "BSD Major" = 14
| | | | | | "BSD Name" = "disk1"
| | | | | | "Size" = 33546752
| | | | | | "Content Hint" = ""
| | | | | | "Removable" = Yes
| | | | | | "IOMediaIcon" = {"IOBundleResourceFile"="Removable.icns","CFBundleIdentifier"="com.apple.iokit.IOStorageFamily"}
| | | | | | "BSD Unit" = 1
| | | | | | "Ejectable" = Yes
| | | | | | "Content" = ""
| | | | | | "Whole" = Yes
| | | | | | }
| | | | | |
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, registered, matched, active, busy 0, retain count 6>
| | | | | {
| | | | | "IOProbeScore" = 30000
| | | | | "IOResourceMatch" = "IOBSD"
| | | | | "IOClass" = "IOMediaBSDClient"
| | | | | "IOProviderClass" = "IOMedia"
| | | | | "CFBundleIdentifier" = "com.apple.iokit.IOStorageFamily"
| | | | | "IOMatchCategory" = "IOMediaBSDClient"
| | | | | }

Where on my (and other) Macs the level below IOMedia was showing AppleXsanFilter, on the working Macbook it shows IOMediaBSDClient. This is what I predicted it should be because it is what I saw when I plugged in a standard Sony memory stick.

I noticed also that at the IOMedia level there is a lot of BSD information that isn't present at that level on my iMac. Furthermore on the working machine, the value of "Leaf" is Yes - on my iMac, it is No.

So I think that's the problem. What is the cause?

Something else that was immediately obvious was the difference between my and Meikel's System Profiles.

Meikel's Macbook has a new build of Mac OS X (8N1150). The kernel version is 8.8.3. My kernel version (on a PPC G5) is 8.8.0. Looking at the extensions, there are newer versions of key kexts on the working Mac...

Working Mac

IOUSBMassStorageClass version 1.4.7 20/10/2006
IOSCSIBlockCommandsDevice version 1.5.1 20/10/2006
IOUSBFamily version 2.6.1 19/10/2006
IOStorageFamily version 1.5.1 19/10/2006

Non-working Mac

IOUSBMassStorageClass version 1.4.5 26/03/2005
IOSCSIBlockCommandsDevice version 1.4.9 26/03/2005
IOUSBFamily version 2.5.6 26/03/2005
IOStorageFamily version 1.5 26/02/2005

Now I know the build numbers of 10.4.8 are different in PPC and Intel, but are there also different version numbers of the kernel and kexts? Is there anyone out there with Intel kit with the same version numbers as the working Macbook above but who still can't mount the GPS-CS1?

Thursday, 21 December 2006

GPS-CS1 mounts on Linux - confirmed

I can personally confirm that the GPS-CS1 mounts as a removable drive on Linux (Ubuntu in my test) without any additional drivers or modifications. This is significant for two reasons:

1 - Mac OS is now the only major OS that doesn't support this device
2 - Mac OS X is based on Unix, so shouldn't be that different from Linux - so this shouldn't be an insurmountable problem.

Here's the data I captured from Ubuntu - first the output for lsusb -v for the device:


Bus 002 Device 002: ID 054c:0298 Sony Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x054c Sony Corp.
idProduct 0x0298
bcdDevice 1.00
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0

Now screenshots from Device Manager. As some of these strings are cropped, if there's any data you want to see in full, please let me know.