Tengo el GDR-3120L funcionando en linux sin usar el modulo ide-scsi, simplemente parcheando el ide-cd driver, y puedo navegar a las carpetas VIDEO_TS y AUDIO_TS de los discos de 360.
Se puede montar a la vez cualquier dispositivo de disco duro y otros CDROM.
Lo único que tenemos que hacer es evitar que el módulo ide-cd envíe el GPMODE_CAPABILITIES_PAGE al CDROM.
Cambia la función ide_cdrom_get_capabilities() por esta otra:
static int ide_cdrom_get_capabilities(ide_drive_t *drive, struct atapi_capabilities_page *cap)
{
struct cdrom_info *info = drive->driver_data;
struct cdrom_device_info *cdi = &info->devinfo;
struct packet_command cgc;
int stat=0, attempts = 3, size = sizeof(*cap);
if (!(!strcmp(drive->id->model, "ATAPI CD ROM DRIVE 50X MAX") ||
!strcmp(drive->id->model, "WPI CDS-32X")))
size -= sizeof(cap->pad);
if (strcmp(drive->id->model, "HL-DT-STDVD-ROM GDR3120L"))
{
init_cdrom_command(&cgc, cap, size, CGC_DATA_UNKNOWN);
do { /* we seem to get stat=0x01,err=0x00 the first time (??) */
stat = cdrom_mode_sense(cdi, &cgc, GPMODE_CAPABILITIES_PAGE, 0);
if (!stat)
break;
} while (--attempts);
}
else
{
printk("GDR3120L detected!->faking capabilities\n");
memset(cap,0,sizeof(struct atapi_capabilities_page));
cap->dvd_r_read=1;
cap->dvd_rom=1;
cap->method2=1;
cap->cd_rw_read=1;
cap->cd_r_read=1;
cap->multisession=1;
cap->mode2_form2=1;
cap->mode2_form1=1;
cap->audio_play=1;
cap->composite=1;
cap->isrc=1;
cap->cdda=1;
cap->upc=1;
cap->maxspeed=35344;
cap->buffer_size=8;
cap->curspeed=35844;
}
return stat;
}