Unmounting and 'eject' press

Ikke eikke at eikke.com
Thu Jun 3 05:45:00 PDT 2004

Ok, I did the testings.

To unlock the tray: very simple

#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>

#include <linux/cdrom.h>

int main()
        int fd;

        fd = open("/dev/hdc", O_RDONLY | O_NONBLOCK);
        if (fd == -1) {
                return 1;

        if(ioctl(fd, CDROM_LOCKDOOR, 0) < 0)
                 perror("cdrom tray lock");
        return 0;

gcc -o test test.c
mount /mnt/cdrom
(press eject, cd ejects, I get error messages in syslog)

When running dbus-monitor --system while doing this test, Hal seems to send
a dbus message when the CD gets removed, so umounting should be possible :-)
Only need to implement some 'device is busy' test or something alike...

Maybe it's not the best solution, but well, I'll implement it temporarly in

Regards, Ikke

hal mailing list
hal at freedesktop.org

More information about the Hal mailing list