User:Skierpage/CD drive woes

    From KDE UserBase Wiki

    Kubuntu 11.04 was working fine in one AMD64-bit PC. I swapped my hard drive into another PC, HP Pavilion a1012x, and it booted right up and everything works fine! Except... on the new PC no Device Actions trigger when I insert a data CD, music CD, or DVD into either of its CD-ROM drives.

    I don't get the "Available Devices" menu of options to Open with File Manager/VLC /Dragon, and the USB icon says "No Devices Available". I have the usual rules for this in System Settings > Device Actions, but they don't fire.

    Works

    A music CD shows up fine in dolphin, device action "kioclient exec audiocd:/" works fine, vlc can File > Open Disk > /dev/cdrom1" fine...

    Inserting a USB flash drive makes "Available Devices" appear with option to mount it.

    Tried

    I tried system settings -> removable devices > enable automatic mounting of removable media, didn't help

    Solid!

    Maybe some hardware didn't get reconfigured.

    The problem seems to be in the Solid layer.

    % solid-hardware list details
    ...
    udi = '/org/freedesktop/UDisks/devices/sr0'
     parent = '/org/freedesktop/UDisks'  (string)
     vendor = 'HP'  (string)
     product = 'HP  DVD Writer 640'  (string)
     description = 'CD-RW/DVD±RW DL Drive'  (string)
     Block.major = 11  (0xb)  (int)
     Block.minor = 0  (0x0)  (int)
     Block.device = '/dev/sr0'  (string)
     StorageDrive.bus = 'Scsi'  (0x3)  (enum)
     StorageDrive.driveType = 'CdromDrive'  (0x1)  (enum)
     StorageDrive.removable = true  (bool)
     StorageDrive.hotpluggable = false  (bool)
     StorageDrive.inUse = false  (bool)
     StorageDrive.size = 572993536  (0x22273000)  (qulonglong)
     OpticalDrive.supportedMedia = 'Cdr|Cdrw|Dvd|Dvdr|Dvdrw|Dvdplusr|Dvdplusrw|Dvdplusdl'  (0x1df)  (flag)
     OpticalDrive.readSpeed = 0  (0x0)  (int)
     OpticalDrive.writeSpeed = 0  (0x0)  (int)
     OpticalDrive.writeSpeeds = {} (int list)
    
    udi = '/org/freedesktop/UDisks/devices/sr0:media'
     parent = '/org/freedesktop/UDisks/devices/sr0'  (string)
     vendor = 'HP'  (string)
     product = 'HP  DVD Writer 640'  (string)
     description = 'CD-ROM'  (string)
     Block.major = 11  (0xb)  (int)
     Block.minor = 0  (0x0)  (int)
     Block.device = '/dev/sr0'  (string)
     StorageVolume.ignored = true  (bool)
     StorageVolume.usage = 'Other'  (0x0)  (enum)
     StorageVolume.fsType =   (string)
     StorageVolume.label =   (string)
     StorageVolume.uuid =   (string)
     StorageVolume.size = 572993536  (0x22273000)  (qulonglong)
     OpticalDisc.availableContent = 'Audio|Data'  (0x3)  (flag)
     OpticalDisc.discType = 'CdRom'  (0x0)  (enum)
     OpticalDisc.appendable = false  (bool)
     OpticalDisc.blank = false  (bool)
     OpticalDisc.rewritable = false  (bool)
     OpticalDisc.capacity = 572993536  (0x22273000)  (qulonglong)
    

    Solid knows there's an Audio Optical Disc plugged in, but it's ignored, and the System Settings > Device Actions rules include "The devices Ignored must equal false".

    How do I tell Solid not to ignore the storage volume?!

    Solid is in KDE Base. I found the source for this `solid-hardware` command line, but all it does is call SolidHardware shell()'s shell.hwList() command. There's an isIgnored in StorageAccess, but I can't find the source code for the implementation of this in the Udisks back-end.

    udisks

    Solid is probably (?) talking to udisks, I have a process

    udisks-daemon: polling /dev/sr1 /dev/sdg /dev/sdd /dev/sdc /dev/sdf /dev/sde /dev/sr0
    

    I ran udisks --monitor-detail and when I inserted a music CD I got

    changed:     /org/freedesktop/UDisks/devices/sr0
    Showing information for /org/freedesktop/UDisks/devices/sr0
      native-path:                 /sys/devices/pci0000:00/0000:00:02.5/host1/target1:0:0/1:0:0:0/block/sr0
      device:                      11:0
      device-file:                 /dev/sr0
        presentation:              /dev/sr0
        by-id:                     /dev/disk/by-id/ata-HP_DVD_Writer_640_CNL854011C
        by-path:                   /dev/disk/by-path/pci-0000:00:02.5-scsi-1:0:0:0
      detected at:                 Fri 12 Aug 2011 01:45:08 PM PDT
      system internal:             0
      removable:                   1
      has media:                   1 (detected at Tue 16 Aug 2011 03:56:38 PM PDT)
        detects change:            1
        detection by polling:      1
        detection inhibitable:     1
        detection inhibited:       0
      is read only:                0
      is mounted:                  0
      mount paths:             
      mounted by uid:              0
      presentation hide:           0
      presentation nopolicy:       0
      presentation name:           
      presentation icon:           
      size:                        572993536
      block size:                  2048
      job underway:                no
      usage:                       
      type:                        
      version:                     
      uuid:                        
      label:                       
      optical disc:
        blank:                     0
        appendable:                0
        closed:                    0
        num tracks:                16
        num audio tracks:          16
        num sessions:              1
      drive:
        vendor:                    HP
        model:                     HP  DVD Writer 640
        revision:                  CS30
        serial:                    CNL854011C
        WWN:                       
        detachable:                0
        can spindown:              0
        rotational media:          Yes, unknown rate
        write-cache:               unknown
        ejectable:                 1
        adapter:                   /org/freedesktop/UDisks/adapters/0000_3a00_3a02_2e5
        ports:
          /org/freedesktop/UDisks/adapters/0000_3a00_3a02_2e5/host1
        similar devices:
        media:                     optical_cd
          compat:                  optical_cd optical_cd_r optical_cd_rw optical_dvd optical_dvd_plus_r optical_dvd_plus_r_dl optical_dvd_plus_rw optical_dvd_r optical_dvd_rw optical_mrw optical_mrw_w
        interface:                 scsi
        if speed:                  (unknown)
        ATA SMART:                 not available
    
    Advanced probing on /dev/sr0 failed while reading block size

    Bugs

    This sounds similar to Launchpad bug 709868 "kde 4.6 device actions broken".

    He has the StorageVolume.ignored = true. He comments

    Ok... experimented a bit about how solid-hardware works and found what the latest problem is
    One needs to create /media/cdrom0 by hand.
    Solid does not manage mount points automatically creating dirs in media at need
    Solid does not anymore mount by label... namely should have mounted as /media/CDSTOMPER35 but mounts as /media/cdrom0

    But I have a /media/cdrom symlinks to /media/cdrom0 , so that's not it. I have /dev/cdrom1 and cdrom2 symlinking to /dev/sr0 and /dev/sr1. Do I need to create a /media/cdrom1 ?

    I filed KDE Bug 280229 "Device Actions don't trigger for my CD-ROM drives, StorageVolume.ignored"

    Another bug TODO: none of the links on solid.kde.org work, they just redirect to the home page.

    Devices

    System Settings > Multimedia > Audio CDs > General > Specify CD Device is /dev/cdrom. I don't have this, I have /dev/cdrom1 and /dev/cdrom2. Should I change this or TODO is it another bug that this is wrong?

    I changed it to /dev/cdrom1 and that didn't seem to help, or change anything; VLC's Media > Open Disk > Audio CD Disc device is still /dev/cdrom by default.

    TODO Maybe I should create /media/cdrom1 and 2? udisks doesn't care, it's working at the /dev/sr0,1 level. I'm just guessing.