Hi,
Sachma Joerg, warum macht das neuere cdrecord das hier ?
Executing 'write_g1' command on Bus 6 Target 0, Lun 0 timeout 200s
CDB: 2A 00 FF FF FF 6A 00 00 0D 00
cdrecord: Eingabe-/Ausgabefehler. write_g1: scsi sendcmd: no error
CDB: 2A 00 FF FF FF 6A 00 00 0D 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 02 00 00 00 00 0A 00 00 00 00 04 08 00 00
Sense Key: 0x2 Not Ready, Segment 0
Sense Code: 0x04 Qual 0x08 (logical unit not ready, long write in progress) Fru 0x0
Sense flags: Blk 0 (not valid)
resid: 30576
cmd finished after 0.000s timeout 200s
Executing 'write_g1' command on Bus 6 Target 0, Lun 0 timeout 200s
CDB: 2A 00 FF FF FF 6A 00 00 0D 00
resid: 30576
cmd finished after 0.001s timeout 200s
Executing 'write_g1' command on Bus 6 Target 0, Lun 0 timeout 200s
CDB: 2A 00 FF FF FF 6A 00 00 0D 00
cdrecord: Eingabe-/Ausgabefehler. write_g1: scsi sendcmd: no error
CDB: 2A 00 FF FF FF 6A 00 00 0D 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 21 02 00 00
Sense Key: 0x5 Illegal Request, Segment 0
Sense Code: 0x21 Qual 0x02 (invalid address for write) Fru 0x0
Sense flags: Blk 0 (not valid)
resid: 30576
cmd finished after 0.001s timeout 200s
Der Brenner kommt aus den SAO Vorbereitungen raus und will endlich
das erste WRITE10 annehmen. cdrecord sieht .resid > 0 aber keinen
Fehler.
Warum wiederholt es dann aber das WRITE10 auf 0xffffff6a ?
Wenn's kein Fehler war, darf man da auch nicht mehr hinschreiben.
Kein Wunder, dass der Brenner nicht weiter mitspielen mag und
cdrecord ungueltiger Adressierung bezichtigt.
Ich wuerde sagen, dass Dein "resid:" Wachhund etwas zu agressiv
reagiert. Passt zur Faktenlage.
Guck doch mal in Deiner Source, ob da vielleicht ein
Spiels-nochmal-Sam kommt, wenn .resid > 0.
Joerg Schilling schrub:
Vielleicht schaltet libburn ja BurnProof per Default an
Ja. Tut sie.
Das waere dann mit cdrecord (grabend in 10 jaehrigen Erinnerungen ...)
zusaetzlich die Option driveropts=burnfree
sudo cdrecord driveropts=burnfree -audio *.wav
und vermeidet dadurch den Buffer undderrun?
Aber was soll beim ersten WRITE10 auf 0xffffff6a underrunnen ?
cdrecord ist kein einziges Byte Musik beim Brenner losgeworden.
Es sind natürlich auch zufällige Timing-Effekte möglich
Die muessten aber doch ab und zu Misserfolge bei libburn ausloesen.
(Solche wegen "Medium Error" muss man dabei natuerlich weglassen.
Die koennen immer passieren.)
Wenn libburn keine Fehlermeldungen bei Mode Sense bekommt,
heißt das nur daß es weniger kann als cdrecord,
Oder sie schickt was nicht, was der Brenner hasst und was auch
nicht fuer einen netten SAO Audio Lauf noetig ist.
(Ich hoffe doch, die Musik spielt. EgLe, tut sie ?)
Und ich sag ja nicht, dass man normalerweise nicht beim Brenner
mit Befehlen anklopfen darf, auf die man eine Fehlermeldung
bekommt. Mir faellt nur auf, dass crdrecord welche bei MODE SELECT
bekommt, dass MODE SELECT auch SAO einstellen soll, und dass der
Fehlschlag am Schluss aussieht, als wuerde der Brenner kein SAO
erwarten.
Wie auch immer, das doppelte WRITE10 da oben ist ein prima Kandidat,
der erstmal ausgeschlossen werden muesste, bevor man irgendwo anders
sucht.
Libburn behauptet ja unter Linux ohne root Rechte oder
vergleichbares auszukommen.
Tut sie beides. Behaupten (tun eigentlich ich und meine User)
und Auskommen (tut libburn).
Achja: cdrecord sieht nicht nur auf Linux ioctl Returnwerte,
Auf Solaris, FreeBSD, und NetBSD mache ich das auch anders.
Bei Linux lasse ich mich halt auf die Kernelhacker ein und
gehe udev moeglichst aus dem Weg. Letzterer ist mittlerweile
recht harmlos, wenn man ihn solange an frisch eingelegten
Medien lutschen laesst, bis es ihm langweilig wird.
(D.h. Blinkenlichten gehen aus.)
Ich hab jetzt ein Debian 8 mit systemd und aller Annoyanz.
Man kann damit leben. Schulterzuck.
30 unterschiedlichen Plattformen
Fuer mehr als 4 hat sich bei mir noch keiner interessiert.
(Das heisst, fuer eine mehr schon. Aber die muesste ich kaufen.)
Have a nice day ☺
Thomas