Messages in this thread | | | Date | Thu, 16 Sep 2004 11:05:40 +0200 | From | Jens Axboe <> | Subject | Re: CD-ROM can't be ejected |
| |
On Thu, Sep 16 2004, Bc. Michal Semler wrote: > Dne ?t 16. zá?í 2004 09:36 jste napsal(a): > > (don't top post, and don't trim cc list!)
don't trim the cc list!!
> > On Thu, Sep 16 2004, Bc. Michal Semler wrote: > > > notas:/home/cijoml# mount /cdrom/ > > > notas:/home/cijoml# umount /cdrom/ > > > notas:/home/cijoml# strace -o eject /dev/hdc > > > eject: unable to eject, last error: Nep?ípustný argument > > > > > > As you can see, I dont't enter to directory... > > > > > > And output is included > > > > > > ioctl(3, CDROMEJECT, 0xbffffac8) = -1 EIO (Input/output error) > > > > That's the important bit, the reason you get EINVAL passed back is > > because eject tries the floppy eject as well and decides to print the > > warning from that. It really should just stop of it sees -EIO, only > > continue if EINVAL/ENOTTY is passed back. > > > > Try this little c program and report back what it tells you. Compile > > with > > > > gcc -Wall -o eject eject.c > > > > and run without arguments. > > > > #include <stdio.h> > > #include <stdlib.h> > > #include <fcntl.h> > > #include <string.h> > > #include <sys/ioctl.h> > > #include <linux/cdrom.h> > > > > int main(int argc, char *argv[]) > > { > > int fd = open("/dev/hdc", O_RDONLY | O_NONBLOCK); > > struct cdrom_generic_command cgc; > > struct request_sense sense; > > > > memset(&cgc, 0, sizeof(cgc)); > > memset(&sense, 0, sizeof(sense)); > > > > cgc.cmd[0] = 0x1b; > > cgc.cmd[4] = 0x02; > > cgc.sense = &sense; > > cgc.data_direction = CGC_DATA_NONE; > > > > if (ioctl(fd, CDROM_SEND_PACKET, &cgc) == 0) { > > printf("eject worked\n"); > > return 0; > > } > > > > printf("command failed - sense %x/%x/%x\n", sense.sense_key, sense.asc, > > sense.ascq); return 1; > > } > > 2.4.27-mh1 > notas:~# /home/cijoml/eject > ATAPI device hdc: > Error: Not ready -- (Sense key=0x02) > (reserved error code) -- (asc=0x53, ascq=0x02) > The failed "Start/Stop Unit" packet command was: > "1b 00 00 00 02 00 00 00 00 00 00 00 " > command failed - sense 2/53/2
Your tray is still locked, are you sure it isn't mounted?
-- Jens Axboe
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |