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)