# Problema con lettore CD

## lsegalla

Da un po' di tempo non utilizzo i CD AUDIO e ora sulla mia gentoo box avevo bisogno di fare un PLAY di un CD AUDIO appunto.

Avviando VLC dal DE mi appare il msg seguente:

```
L'ingresso non può essere aperto:

VLC non è in grado di aprire il MRL 'cdda:///dev/cdrom'. Controlla il registro per i dettagli.

```

Avviando VLC da console mi appare il messaggio

```
main input error: open of `cdda:///dev/cdrom' failed: (null)

```

Se provo dal DE ad avviarlo con KAFFEINE ricevo

```
Cannot find input plugin for MRL "cdda://".
```

Avviando Kaffeine da KONSOLE non ricevo msg d'errore

Ho provato a googlare ma non ho trovato esattamente questo messaggio (tranne in un forum SUSE dove si risolveva con un update da yast).

Mi sembra anche strano non trovare niente, mi date qualche input per cominciare?

----------

## oRDeX

Sicuro che esista ancora /dev/cdrom? Se si, il link punta al device corretto?

----------

## lsegalla

 *oRDeX wrote:*   

> Sicuro che esista ancora /dev/cdrom? Se si, il link punta al device corretto?

 

```
# ls /dev/cd*

/dev/cdrom6  /dev/cdrw6

```

se io inserisco un CD o DVD, mi viene aperto in /media/...

----------

## oRDeX

Quello avviene perchè il cd viene montato. Nel caso di cdda il CD non deve essere montato, ma deve essere adeguatamente letto direttamente dal suo device.

Da quello che mi fai vedere mi pare che il problema sia proprio che viene creato il link simbolico /dev/cdrom6 mentre il tuo programma cerca /dev/cdrom

Puoi modificare le impostazioni del programma affinchè utilizzi cdrom6? Altrimenti credo che dovrai modificare qualche regola in udev affinchè venga creato il device con il nome corretto.

----------

## lsegalla

In VLC quando apro il disco mi chiede dove aprirlo (MEDIA -> APRI DISCO -> CD AUDIO... e lì posso cambiare il dev e impostare /dev/cdrom6), e lì appare questo errore

```
L'ingresso non può essere aperto:

VLC non è in grado di aprire il MRL 'cdda:///dev/cdrom6'. Controlla il registro per i dettagli.

```

Eppure vedo che: 

```

# ls /dev/cdr*

/dev/cdrom6  /dev/cdrw6

```

Poi nella guida di UDEV ho trovato questa riga:

 *Quote:*   

> Rinominare i dispositivi a blocchi
> 
> Le versioni recenti di udev (dalla 104 in poi) unitamente alle nuove versioni del kernel (2.6.19 e successive) potrebbero cambiare i nomi di dispositivo dei propri dischi, a causa di una modifica nell'implementazione del kernel riguardo a libata: per esempio una periferica CD-RW mappata in precedenza come /dev/hdc potrebbe cambiare in /dev/sr0. Mentre questo di norma non rappresenta un problema, potrebbe dare dei problemi a qualche applicazione che ha codificato internamente la ricerca dei dispositivi in altre locazioni. Per esempio, media-sound/rip si aspetta di trovare i dischi in /dev/cdrom, e ciò diventa un problema se si usa un nuovo kernel e udev rinomina il proprio dispositivo in /dev/cdrom1.
> 
> Per aggirare questi problemi, bisogna modificare /etc/udev/rules.d/70-persistent-cd.rules e assegnare il nome corretto al dispositivo. 

 

Quindi sono andato a vedere quella regola appunto, la allego di seguito:

```

# DVD-RAM_UJ870QJ (pci-0000:00:1f.1-scsi-0:0:0:0)

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-scsi-0:0:0:0", SYMLINK+="cdrom", ENV{GENERATED}="1"

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-scsi-0:0:0:0", SYMLINK+="cdrw", ENV{GENERATED}="1"

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-scsi-0:0:0:0", SYMLINK+="dvd", ENV{GENERATED}="1"

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-scsi-0:0:0:0", SYMLINK+="dvdrw", ENV{GENERATED}="1"

# DataTraveler_U3 (pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:1)

ENV{ID_CDROM}=="?*", ENV{ID_SERIAL}=="Kingston_DataTraveler_U3_0DF1D9608022398F-0:1", SYMLINK+="cdrom1", ENV{GENERATED}="1"

ENV{ID_CDROM}=="?*", ENV{ID_SERIAL}=="Kingston_DataTraveler_U3_0DF1D9608022398F-0:1", SYMLINK+="cdrw1", ENV{GENERATED}="1"

# DataTraveler_U3 (pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:1)

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:1", SYMLINK+="cdrom2", ENV{GENERATED}="1"

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:1", SYMLINK+="cdrw2", ENV{GENERATED}="1"

# DataTraveler_U3 (pci-0000:00:1d.7-usb-0:3:1.0-scsi-0:0:0:1)

ENV{ID_CDROM}=="?*", ENV{ID_SERIAL}=="Kingston_DataTraveler_U3_0FA11160C04149A7-0:1", SYMLINK+="cdrom3", ENV{GENERATED}="1"

ENV{ID_CDROM}=="?*", ENV{ID_SERIAL}=="Kingston_DataTraveler_U3_0FA11160C04149A7-0:1", SYMLINK+="cdrw3", ENV{GENERATED}="1"

# DataTraveler_U3 (pci-0000:00:1d.7-usb-0:3:1.0-scsi-0:0:0:1)

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1d.7-usb-0:3:1.0-scsi-0:0:0:1", SYMLINK+="cdrom4", ENV{GENERATED}="1"

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1d.7-usb-0:3:1.0-scsi-0:0:0:1", SYMLINK+="cdrw4", ENV{GENERATED}="1"

# MATSHITADVD-RAM_UJ870QJ (pci-0000:00:1f.1-ide-0:0)

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-ide-0:0", SYMLINK+="cdrom5", ENV{GENERATED}="1"

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-ide-0:0", SYMLINK+="cdrw5", ENV{GENERATED}="1"

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-ide-0:0", SYMLINK+="dvd5", ENV{GENERATED}="1"

ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-ide-0:0", SYMLINK+="dvdrw5", ENV{GENERATED}="1"

# MATSHITADVD-RAM_UJ870QJ (pci-0000:00:1f.1)

SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1", SYMLINK+="cdrom6", ENV{GENERATED}="1"

SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1", SYMLINK+="cdrw6", ENV{GENERATED}="1"

SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1", SYMLINK+="dvd6", ENV{GENERATED}="1"

SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1", SYMLINK+="dvdrw6", ENV{GENERATED}="1"

```

Ho cambiato la riga

```
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1", SYMLINK+="cdrom6", ENV{GENERATED}="1"
```

in 

```
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1", SYMLINK+="cdrom", ENV{GENERATED}="1"
```

ma provando a riavviare il servizio mi dà

```

# /etc/init.d/udev restart                        

 * The udev init-script is written for baselayout-2!                

 * Please do not use it with baselayout-1!.
```

Però baselayout 2 è mascherato, io in genere non uso robe mascherate; ad ogni modo ho provato lo stesso a fare anche un riavvio ma niente da fare...

----------

