Cdrtools Homepage

Cdrtools mit SPTI für Windows NT/2000/XP

This page in English

Worum geht es?

Die Cdrtools sind unter Microsoft Windows auf einen funktionierenden ASPI-Treiber angewiesen. Windows NT/2000/XP kommen ohne installiertes ASPI daher, welches deshalb erst installiert werden muss (empfohlen: Adaptec ASPI). Unter diesen Betriebssystemen gibt es noch eine andere Zugriffsmöglichkeit, SPTI (SCSI Pass-Through Interface). Dies wird inzwischen von vielen Brennprogrammen genutzt und von Microsoft propagiert. Ich habe aus der AKRip CD-DA Audio Extraction Library die zur Unterstützung von SPTI benötigten Routinen entnommen und in die libscg (scsi-wnt.c) integriert. AKRip bildet hierbei im wesentlichen die Funktionen von ASPI nach.

Vorteile:

Nachteile:

Arbeitsweise:

SPTI läuft nur unter Windows NT/2000/XP, nicht 95/98/ME. Wird ein ASPI erkannt (wnaspi32.dll funktioniert), so wird dieses verwendet, die Programme laufen wie bisher. Andernfalls wird automatisch SPTI verwendet. Mann kann SPTI auch erzwingen, indem man dem Target den String "SPTI:" voransetzt, z.B. dev=SPTI:1,0,0. Durch ein #define PREFER_SPTI (jetzt im patch gesetzt, SPTI soll ja getestet werden!) kann man dies umkehren, ASPI erzwingt man dann mit dev=ASPI:x,y,z.

Download:

Ab cdrtools-2.01a24 ist der Patch in den cdrtools integriert.
cdrtools-spti-0.13.tar.gz    ab cdrtools-2.01a20 bis 2.01a23, Änderungen
cdrtools-spti-0.12.tar.gz    bis cdrtools-2.01a19 verwendbar
cdrtools-spti-0.11.tar.gz   
cdrtools-spti-0.10.tar.gz    (erste Version)

Installation:

Diese Erweiterung für die Cdrtools wird vorerst hier nur als Source-Patch angeboten. Man muss sich also die Quelltexte beschaffen, den Patch anwenden und dann das Paket compilieren. Der Patch modifiziert libscg/scsi-wnt.c und fügt libscg/scg/scsipt.h hinzu. Alle Versionen cdrtools-2.0 bis 2.01a23 arbeiten damit, bitte den Patch entsprechend der Version auswählen.

Neu: Ab cdrtools-2.01a24 ist der Patch in den cdrtools integriert und kann nicht mehr angwendet werden, folgende Anleitung hat also mehr historische Bedeutung.

Cdrtools gibt es hier: ftp.berlios.de/pub/cdrecord bzw. ftp.berlios.de/pub/cdrecord/alpha
patch herunterladen und auspacken, dann anwenden (im aktuellen Verzeichnis befindet sich das cdrtools Verzeichnis) mit:
>patch -p0 --binary <cdrtools-spti-x.xx.diff
Evtl. die defines PREFER_SPTI und CREATE_NONSHARED in scsi-wnt.c auskommentieren, wenn gewünscht.
Danach die Cdrtools wie gewohnt erstellen.

Ergänzung: Thomas Plank bietet freundlicherweise Cdrtools-Binaries mit SPTI-Erweiterung hier an:
http://www.sbox.tugraz.at/home/t/tplank/

Fehler:

Da es sich um eine frühe Version dieser Erweiterung handelt, können noch Fehler enthalten sein. Deshalb sollte zunächst auf Rechnern getestet werden, wo auch ein funktionierendes ASPI vorhanden ist. Zur Vorsicht kann man auch noch Cdrtools ohne diese Erweiterung erstellen, schließlich könnte sich ja schon beim Zugriff durch ASPI ein Fehler eingeschlichen haben, obwohl die Änderungen hier minimal sind. Kommt es zu Fehlfunktionen können die beiden Zugriffsmöglichkeiten verglichen werden. Tritt der Fehler bei ASPI und SPTI auf, so liegt es wohl nicht an SPTI. Tritt der Fehler nur bei SPTI auf, sollte unter beiden Zugriffsmöglichkeiten eine Log-Datei mit dem Programmparameter "-V" erstellt werden, der Fehler sollte dann eigentlich an einer Stelle auftreten, wo sich die aufgezeichneten Daten unterscheiden, dies wäre zur Fehlersuche sehr hilfreich.

Weitere Hinweise:

Meine Tests habe ich bisher hauptsächlich mit Windows 2000 und XP durchgeführt, nur ein Rechner mit NT 4.0 (SP5) war dabei. Des weiteren empfehle ich, unabhängig von meiner Erweiterung, an cdda2wav.c und cdrecord.c einen Patch vozunehmen, der auf REALTIME_PRIORITY_CLASS verzichtet, siehe hier:
news://e1b4bvo7n82d93p1vdg78h5i8p5bb5up3m@4ax.com oder bei Google Groups.
Ergänzung: Mit Cygwin 1.5.3 ist dies nicht mehr notwendig, siehe news://mk5clv81sveg8rphasktlj1itc42u31t28.com oder Google Groups.

Richard Stemmer Letzte Änderung: 07.01.2004