Reading mode2 DVDs fails

  • meowsqueak

    I am trying to use cdrdao to read and backup my (legitimate) Playstation2 DVDs in Linux. I have tried two different DVD drives (a 3 year old Samsung and a brand new LG GSA-4163B) without success. I have tried cdrdao 1.1.9 and 1.2.0. I have tried the generic-mmc and the generic-mmc-raw drivers. I have tried all the options in the cdrdao README (e.g. --driver generic-mmc:0x3). I have even looked at the source code. Here is where it fails:
      // read disk toc length
      memset(cmd, 0, 10);
      cmd[0] = 0x43; // READ TOC
      cmd[2] = 2;
      cmd[6] = sessionNr;
      cmd[8] = 4;

      if (sendCmd(cmd, 10, NULL, 0, reqData, 4) != 0) {
        message(-2, "Cannot read disk toc.");
        return NULL;

    A 'normal' DVD (e.g. the installation DVD that came with the drive) can be read fine (although it's mode 1). All of my PS2 disks fail (they are all mode 2 I think). I have included the output from one invocation below.

    I did find that 'generic-mmc-raw:0x10000' gets rid of the first error ("ERROR: Cannot read disk toc.") but it still reverts to MODE 1 and then fails in the same way.

    Is there anything else I can do to try and work out a fix? Perhaps what I am trying is no longer possible with cdrdao?

    # cdrdao read-cd -v 4 --read-raw --device ATA:1,0,0 --driver generic-mmc-raw gamename.toc
    Cdrdao version 1.2.0 - (C) Andreas Mueller <>
      SCSI interface library - (C) Joerg Schilling
      Paranoia DAE library - (C) Monty

    Check for current driver tables.
    Format converter enabled for extensions: mp3 ogg

    Using libscg version 'schily-0.8'
    Using libscg transport code version 'schily-scsi-linux-sg.c-1.83'

    ATA:1,0,0: HL-DT-ST DVDRAM GSA-4163B    Rev: A100
    Using driver: Generic SCSI-3/MMC (raw writing) - Version 2.0 (options 0x0000)

    Reading toc and track data...
    getTocGeneric: data len 20
    ERROR: Cannot read disk toc.

    Track   Mode    Flags  Start                Length
    1      DATA    4      00:00:00(     0)     360:20:52(1621552)
    Leadout DATA    4      360:20:52(1621552)

    Checking for PQ sub-channel reading support (data track)...
    PQ sub-channel reading (data track) not supported.
    Checking for raw P-W sub-channel reading support (data track)...
    Raw P-W sub-channel reading (data track) is not supported.
    Checking for cooked R-W sub-channel reading support (data track)...
    Cooked R-W sub-channel reading (data track) is not supported.
    ERROR: Cannot read sector of track.
    WARNING: Cannot determine mode of data track 1 - asuming MODE1.
    Copying data track 1 (MODE1_RAW): start 00:00:00, length 360:20:52 to "data.bin"...
    /home/david/src/cdrdao-1.2.0/dao/cdrdao: Success.  : scsi sendcmd: no error
    CDB:  BE 00 00 00 00 00 00 00 1A F8 00 00
    status: 0x2 (CHECK CONDITION)
    Sense Bytes: 70 00 05 00 00 00 00 10 BE F8 00 08 24 00 00 C0
    Sense Key: 0x5 Illegal Request, Segment 0
    Sense Code: 0x24 Qual 0x00 (invalid field in cdb) Fru 0x0
    Sense flags: Blk 0 (not valid) error refers to command part, bit ptr 0 (not valid) field ptr 0
    resid: 61152
    cmd finished after 0.001s timeout 20s
    ERROR: Read error while copying data from track.