Pagina 1 di 1

hal monta penna, hd esterno e cd... ma non i dvd [RISOLTO]

Inviato: gio 19 ott 2006, 13:01
da pino.giaquinto
Ho un 'combo' (cdrw/dvdr) sul portatile e hal non mi monta in automatico il dvd di slack 11... non uso il portatile per video dvd e quindi non me ne ero mai accorto!
Ho provato anche con un altro dvd (video) ma... niente da fare!
Strano perche' mi monta tranquillamente penna usb, hd usb e cdr/rw.
Provero' a cambiare supporto (ho solo dei DVD +R al momento)... ma la cosa strana e' che riesco a montarli da console senza alcun problema.
Suggerimenti?

Inviato: gio 19 ott 2006, 13:10
da pino.giaquinto
Ho appena provato con un DVD -R di altra marca... sigh!
Non funziona :-(
... da console invece tutto regolare, quindi non e' un problema di supporti o di lettore.

Inviato: gio 19 ott 2006, 13:27
da pino.giaquinto
Ho fatto un po' di prove anche sul desktop (1 dvdrw + 1 vecchio combo cdrw/dvdr) ed il risultato e' questo: se inserisco il dvd nell'unita' dvdrw... hal funziona alla grande, mentre se inserisco lo stesso dvd nell'unita' combo... hal non da' segni di vita :-(
Quindi deduco che sia un problema che non dipende dalla configurazione o dall'hardware... c'e' un bug!
P.S.) Anche sul desktop riesco a montare 'a mano' (ovvero da console) sia da dvdrw che da combo, e senza alcun problema... quindi l'hardware e' OK.
Fatemi sapere se avete lo stesso problema... in tal caso sarebbe opportuno segnalare il bug!
Ciao :-)

Inviato: gio 19 ott 2006, 15:42
da azriel
sembra più o meno lo stesso problema che ho postato io ( http://www.slacky.it/forum/viewtopic.ph ... highlight=)
io non ci sono riuscito neanche aggiornando a KDe 3.5.5 , ti auguro migior fortuna!

Inviato: gio 19 ott 2006, 20:18
da pino.giaquinto
Non c'e' nessuno che ha un drive combo e mi da' una conferma?

Inviato: ven 20 ott 2006, 13:53
da pino.giaquinto
Come e' possibile vedere da questa porzione dell'output di hal-device:

Codice: Seleziona tutto

  storage.cdrom.dvdplusrdl = false  (bool)
  storage.cdrom.dvdplusrwdl = false  (bool)
  storage.cdrom.dvdplusrw = false  (bool)
  storage.cdrom.dvdplusr = false  (bool)
  storage.cdrom.dvdram = false  (bool)
  storage.cdrom.dvdrw = false  (bool)
  storage.cdrom.dvdr = false  (bool)
  storage.cdrom.dvd = true  (bool)
  storage.cdrom.cdrw = true  (bool)
  storage.cdrom.cdr = true  (bool)
il mio 'combo' viene considerato da hal un semplice masterizzatore cd... anche se e' strano che sia:

Codice: Seleziona tutto

storage.cdrom.dvd = true (bool)
Ho provato a cambiare le key:

Codice: Seleziona tutto

storage.cdrom.dvdplusr = true (bool)
storage.cdrom.dvdr = true (bool)
'al volo' da Konsole con hal-set-property, ma inserendo un dvd nel lettore... l'automount comunque non parte con i dvd e funziona benissimo con i cd :-(
Esiste un modo per convincere hal (magari in fase di avvio del demone) che la mia unita' legge i dvd?

Inviato: ven 20 ott 2006, 19:14
da pino.giaquinto
Ho trovato il modo di farlo: basta aggiungere

Codice: Seleziona tutto

      <match key="storage.model" string="QSI CD-RW/DVD-ROM SBW242U">
        <merge key="storage.cdrom.dvdplusr" type="bool">true</merge>
        <merge key="storage.cdrom.dvdr" type="bool">true</merge>
      </match>
al file /usr/share/hal/fdi/information/10freedesktop/10-cd-dvd-burner.fdi ma comunque non basta.
Ora l'output di hal-device e' corretto ma continua a non funzionare con i dvd.
Considerando che nessuno sembra aver avuto il mio problema... aggiungero' altro solo quando riusciro' a risolvere... spero :-(

P.S.) La stringa QSI CD-RW/DVD-ROM SBW242U identifica il mio drive. L'ho copiata dall'output di hal-device.

Ciao :-)

Inviato: ven 20 ott 2006, 20:39
da pennega
cosa dice dmesg dopo che metti il dvd ?
avevo postato anche io un problema simile tanto fà in area libera... problema al quale non ho trovato ancora una soluzione...

Inviato: ven 20 ott 2006, 20:53
da pino.giaquinto
Ho indagato utilizzando dbus-monitor --system
Questo e' l'output relativo all'inserimento di un CD:

Codice: Seleziona tutto

signal sender=org.freedesktop.DBus -> dest=:1.5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.5"

signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/devices/storage_model_CDRW/DVD_SBW242U; interface=org.freedesktop.Hal.Device; member=PropertyModified
   int32 1
   array [
      struct {
         string "storage.removable.media_available"
         boolean false
         boolean false
      }
   ]

signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string "/org/freedesktop/Hal/devices/volume_label_Slack11d2"
e questo l'output relativo all'inserimento di un DVD:

Codice: Seleziona tutto

signal sender=org.freedesktop.DBus -> dest=:1.6 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.6"

signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/devices/storage_model_CDRW/DVD_SBW242U; interface=org.freedesktop.Hal.Device; member=PropertyModified
   int32 1
   array [
      struct {
         string "storage.removable.media_available"
         boolean false
         boolean false
      }
   ]

signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/devices/storage_model_CDRW/DVD_SBW242U; interface=org.freedesktop.Hal.Device; member=PropertyModified
   int32 1
   array [
      struct {
         string "storage.removable.media_size"
         boolean false
         boolean false
      }
   ]

signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string "/org/freedesktop/Hal/devices/volume_part_1_size_2631663616"
Ho provato poi a fare la stessa cosa sul desktop, dove ho un masterizzatore DVD su cui funziona l'automount sia per i CD che per i DVD:

Codice: Seleziona tutto

signal sender=org.freedesktop.DBus -> dest=:1.4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.4"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/devices/storage_model_WAITEC_ACTION16/1; interface=org.freedesktop.Hal.Device; member=PropertyModified
   int32 1
   array [
      struct {
         string "storage.removable.media_available"
         boolean false
         boolean false
      }
   ]
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string "/org/freedesktop/Hal/devices/volume_label_MTK_RECORD_VOLUME"
A quanto pare il problema e' a monte di hal.
C'e' qualcosa che non va'... basta guardare l'ultima parte del secondo e terzo log che sono relativi allo stesso supporto (DVD) inserito in due diversi PC: ci si rende conto subito che compare 'volume_part_1...' invece che il classico 'volume_label..."
C'e' qualcuno che puo' aiutarmi?

Passo e chiudo :(

Inviato: sab 21 ott 2006, 9:05
da pino.giaquinto
Stavolta e' stata veramente dura... ma ci sono riuscito 8)
In effetti la causa dei miei problemi era un bug nel firmware del mio drive cdrw/dvd.
Mi e' bastato commentare una porzione del codice di hal e ricompilare... poi tutto ha funzionato al primo colpo!
La parte da commentare e' nel file /hald/linux/probing/probe-volume.c ed e' precisamente la seguente:

Codice: Seleziona tutto

//		if (ioctl (fd, CDROMREADTOCHDR, &toc_hdr) == 0) {
//			struct cdrom_tocentry toc_entr;
//			unsigned int vol_session_count = 0;

//			vol_session_count = toc_hdr.cdth_trk1;
//			HAL_DEBUG(("volume_session_count = %u", vol_session_count));

			/* read session header */
//			memset (&toc_entr, 0x00, sizeof (toc_entr));
//			toc_entr.cdte_track = vol_session_count;
//			toc_entr.cdte_format = CDROM_LBA;
//			if (ioctl (fd, CDROMREADTOCENTRY, &toc_entr) == 0) {
//				if (toc_entr.cdte_ctrl & CDROM_DATA_TRACK) {
//					HAL_DEBUG (("last session starts at block = %u", toc_entr.cdte_addr.lba));
//					vol_probe_offset = toc_entr.cdte_addr.lba * block_size;
//				}
//			}
//		}
e cioe' tutto quanto e' compreso tra le righe 538 e 555.
ATTENZIONE: ogni riferimento ai sorgenti di hal e' relativo alla versione 0.5.8.1 ... quella che Meskalamdug ha 'pacchettizzato' e messo a disposizione sul suo sito.
Sarebbe utile avere il suo SlackBuild cosi' da poter correggere il codice e fare un pacchetto 'revisionato' che possa essere installato da chi ha il mio stesso problema.

Ciao :-)

Inviato: sab 21 ott 2006, 11:40
da pennega
pennega ha scritto:cosa dice dmesg dopo che metti il dvd ?
avevo postato anche io un problema simile tanto fà in area libera... problema al quale non ho trovato ancora una soluzione...
mi sarebbe stato utile se avessi risposto a questa bomanda....
io ottendo qualcosa del tipo

Codice: Seleziona tutto

hdd: packet command error: status=0x51 { DriveReady SeekComplete Error }
hdd: packet command error: error=0x30 { LastFailedSense=0x03 }
ide: failed opcode was: unknown
ATAPI device hdd:
  Error: Medium error -- (Sense key=0x03)
  (reserved error code) -- (asc=0x57, ascq=0x00)
  The failed "Read Cd/Dvd Capacity" packet command was:
  "25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
avevi qualcosa di simile anche tu ?

Inviato: sab 21 ott 2006, 13:37
da pino.giaquinto
Purtroppo dmesg non mi dava nessuna indicazione sul problema.
E' per questo che usavo strumenti come dbus-monitor e hal-device per capirci qualcosa.
Forse avrei dovuto avviare il demone hald con l'opzione --use-syslog

Inviato: sab 21 ott 2006, 18:40
da Meskalamdug
pino.giaquinto ha scritto:Stavolta e' stata veramente dura... ma ci sono riuscito 8)
In effetti la causa dei miei problemi era un bug nel firmware del mio drive cdrw/dvd.
Mi e' bastato commentare una porzione del codice di hal e ricompilare... poi tutto ha funzionato al primo colpo!
La parte da commentare e' nel file /hald/linux/probing/probe-volume.c ed e' precisamente la seguente:

Codice: Seleziona tutto

//		if (ioctl (fd, CDROMREADTOCHDR, &toc_hdr) == 0) {
//			struct cdrom_tocentry toc_entr;
//			unsigned int vol_session_count = 0;

//			vol_session_count = toc_hdr.cdth_trk1;
//			HAL_DEBUG(("volume_session_count = %u", vol_session_count));

			/* read session header */
//			memset (&toc_entr, 0x00, sizeof (toc_entr));
//			toc_entr.cdte_track = vol_session_count;
//			toc_entr.cdte_format = CDROM_LBA;
//			if (ioctl (fd, CDROMREADTOCENTRY, &toc_entr) == 0) {
//				if (toc_entr.cdte_ctrl & CDROM_DATA_TRACK) {
//					HAL_DEBUG (("last session starts at block = %u", toc_entr.cdte_addr.lba));
//					vol_probe_offset = toc_entr.cdte_addr.lba * block_size;
//				}
//			}
//		}
e cioe' tutto quanto e' compreso tra le righe 538 e 555.
ATTENZIONE: ogni riferimento ai sorgenti di hal e' relativo alla versione 0.5.8.1 ... quella che Meskalamdug ha 'pacchettizzato' e messo a disposizione sul suo sito.
Sarebbe utile avere il suo SlackBuild cosi' da poter correggere il codice e fare un pacchetto 'revisionato' che possa essere installato da chi ha il mio stesso problema.

Ciao :-)
Complimenti
comunque build e sorgenti
sono su mytux(hal.tar.bz2)

Inviato: sab 21 ott 2006, 22:42
da pino.giaquinto
Grazie Meskalamdug :)
Ho scaricato hal.tar.bz2 da mytux e modificato sorgenti e build: funziona!
Se lo ritenete opportuno posso inviare il pacchetto tgz a Loris...

Ciao

Inviato: mer 1 nov 2006, 21:22
da slux
Possiedo un masterizzatore TSSTCorp TS-H552U revisione firmware US07 (l'ultima :angry4: ) e avevo lo stesso problema : tutto ok con i cdrom e le periferiche usb ma nisba con i dvd-rom e i dvd-video.
Ho commentato le righe di sorgente menzionate sopra nel post e poi ho ricompilato.
Ragazzi, funzia alla grande!!!!!!!!!!!!!!!!!!!!! :headbang:
GRAZIE MILLE PINO !!!!