I need to debug a problem with my SDcard driver stack (which 
unfortunately I cannot yet make public, but which I hope to do soon!  
Just waiting for legal review, and I think we - that is Sun - may need 
to pay some fees to the SDA and MMC associations.)

Anyway, the problem I'm having is that my device, which emulates a SCSI 
disk, doesn't appear to behave properly with gnome-volume-manager.  If 
the card is inserted at boot, it automounts and shows up on the desktop 
just fine.

But if I remove and reinsert the card, no joy.

Here's the output from hal-device for this device, with the card 
inserted.  After removal, the storage.removable.media_available flag 
toggles to flase, and when I reinsert the card it does go back to true.  
I can manually mount the device as well.

In an USB slot reader the device behaves normally.  If I insert/remove 
the card from the USB reader gnome-volume-manager does the right thing, 
and from what I can tell, there are no differences in hal-device output 
between USB and my slot driver apart from the "bus" type ("scsi" instead 
of "usb".)  Is that the fundamental problem?  Am I missing something 
else?  Am I barking up the wrong tree entirely?

I can't seem to find the relevant sources to gnome-volume-manager.  
(Probably because I don't know my way around the JDS consolidation.)  
(Note that I'm thinking of changing the inquiry data to "Solaris" for 
the vendor -- "OpenSolaris" is too big -- 8 character limit -- and 
"SD/MMC Slot" for the device.

In all respects this device should appear like a SCSI drive with 
removable storage.  The only thing is that I don't support MODE SENSE, 
MODE SELECT, or VPD inquiry data.  I'm probably going to change pretty 
soon though.

Anyway, here's the relevant hal-device output.  I'd *love* to have some 
advice on where else to look to debug this problem.  I don't *think* the 
problem resides in the kernel, but maybe I'm overlooking something.  Thanks!

    -  Garrett

24: udi = 
'/org/freedesktop/Hal/devices/pci_0_0/pci8086_2448_1e/pci1179_1_b_3/sd
card_0_0/disk2/sd2'
  info.claimed.uid = 79059  (0x134d3)  (int)
  info.claimed.service = 'gnome-volume-manager'  (string)
  info.claimed = true  (bool)
  info.addons = { 'hald-addon-storage' } (string list)
  storage.solaris.nicknames = { 'rmdisk', 'rmdisk0' } (string list)
  storage.solaris.legacy.symdev = 'rmdisk0'  (string)
  storage.solaris.legacy.media_num = 0  (0x0)  (int)
  storage.solaris.legacy.media_type = 'rmdisk'  (string)
  storage.removable.solaris.read_only = false  (bool)
  storage.removable.media_available = true  (bool)
  storage.solaris.num_dos_partitions = 1  (0x1)  (int)
  storage.solaris.vtoc_slices = false  (bool)
  storage.partitioning_scheme = 'mbr'  (string)
  block.no_partitions = false  (bool)
  storage.no_partitions_hint = false  (bool)
  storage.serial = ''  (string)
  storage.firmware_revision = ''  (string)
  storage.model = 'SD Memory Slot'  (string)
  storage.vendor = 'SUN'  (string)
  storage.bus = 'scsi'  (string)
  storage.physical_device = 
'/org/freedesktop/Hal/devices/pci_0_0/pci8086_2448_1e/pci1179_1_b_3/sdcard_0_0/disk2'
  
(string)
  block.is_volume = false  (bool)
  block.solaris.raw_device = '/dev/rdsk/c3t0d0p0'  (string)
  block.device = '/dev/dsk/c3t0d0p0'  (string)
  block.minor = 144  (0x90)  (int)
  block.major = 39  (0x27)  (int)
  storage.drive_type = 'disk'  (string)
  storage.media_check_enabled = true  (bool)
  storage.requires_eject = false  (bool)
  storage.removable = true  (bool)
  storage.hotpluggable = true  (bool)
  storage.lun = 0  (0x0)  (int)
  info.capabilities = { 'storage', 'block' } (string list)
  info.category = 'storage'  (string)
  info.solaris.driver = 'sd'  (string)
  solaris.devfs_path = 
'/pci at 0,0/pci8086,2448 at 1e/pci1179,1 at b,3/sdcard at 0/disk at 0,0:q'  
(string)
  info.product = 'SD Memory Slot'  (string)
  info.udi = 
'/org/freedesktop/Hal/devices/pci_0_0/pci8086_2448_1e/pci1179_1_b_3/sdcard_0_0/disk2/sd2'
  
(string)
  info.parent = 
'/org/freedesktop/Hal/devices/pci_0_0/pci8086_2448_1e/pci1179_1_b_3/sdcard_0_0/disk2'
  
(string)


Reply via email to