I peeked at the source code. The ATA smart collect script is called by
the daemon like this:

    /usr/lib/devicekit-disks/devkit-disks-helper-ata-smart-collect
/dev/sdb 1

The "1" parameter is the "nowakeup" option. Executing the above call as
root always spins up my disk (also when replacing "1" with "0"). The
corresponding code is:

        nowakeup = atoi (argv[2]);

        if (sk_disk_open (device, &d) != 0) {
                g_printerr ("Failed to open disk %s: %m\n", device);
                goto out;
        }

        if (sk_disk_check_sleep_mode (d, &awake) != 0) {
                g_printerr ("Failed to check if disk %s is awake: %m\n", 
device);
                goto out;
        }

        /* don't wake up disk unless specically asked to */
        if (nowakeup && !awake) {
                g_printerr ("Disk %s is asleep and nowakeup option was 
passed\n", device);
                ret = 2;
                goto out;
        }

So either sk_disk_check_sleep_mode fails to detect that the disk is
sleeping, or the nowakeup option is parsed incorrectly. I'll debug that
later.

-- 
Disk wakes up every 30 minutes and produces errors on dmesg
https://bugs.launchpad.net/bugs/435190
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to