Hi folks, i have hacked a small testprogramm which keeps the cdrom spinning under certain circumstances.
preparations: 1. /etc/init.d/gdm stop 2. pkill hald 3. /etc/init.d/fam stop Tests case 1: Action 1.1 Insert a data CDROM 1.2 start halTest 1.3 wait until program terminates Expected Results nothing happens, drive remains silent case 2: Action 2.1 start halTest 2.2 while halTest is running: open and close the cdrom tray (with data cdrom) 2.3 wait until porgram terminates Expected Results: after opening and closing the tray, the drive starts spinning and continues to do so. The drive stops spinning aprox. 14 secs after issuing the last close. ##### begin testprogramm #include <stdlib.h> #include <unistd.h> #include <termios.h> #include <fcntl.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/time.h> #include <sys/ioctl.h> #include <errno.h> #include <signal.h> #include <syslog.h> #include <getopt.h> #include <string.h> #include <time.h> /* Testprogramm to trigger the spinning cdrom problem */ /* The drive does stop approx. 14 secs after issuing the last close() */ /* It seems that opening and closing the device in a nanosleep */ /* loop is not a good idea. */ int main(int argc, char *argv[]) { int fd=0; int rc=0; int i=0; static int counter=0; for (;;) { fd=open("/dev/hdc", O_RDONLY|O_NONBLOCK|O_EXCL|00100000); printf("halTest.main open /dev/hdc fd: %d counter: %d \n",fd,counter); close(fd); usleep(1000000); counter++; if ((counter % 40 ) == 0) break; } for (i=20; i>0;i--) { printf("halTest.main remainig time to exit %d \n",i); sleep(1); } } ######## end testprogramm ##### Merry xmas and a happy new year . -- Juergen Lueters <jlueters intranet-engineering.de> Intranet Engineering GmbH -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]