Hallo, On Wed, 13 Mar 2002, Heimo Ponnath wrote:
Bevor ich jetzt aber darauflos konfiguriere, möchte ich nochmal sicher sein, daß ich Eure Vorschläge verstanden habe. Zunächst das grundsätzliche:
a) Man kann also die Laufwerke dvd und cdrom auf zweierlei Weise unter Linux betreiben: Zum einen als ide-Geräte (da spielt dann wohl Atapi eine Rolle)
Genau.
und zum anderen als SCSI-Geräte - besser Pseudo-SCSI, weil ich ja garkeine SCSI-Unterstützung auf dem Board oder per Karte habe. Im ersten Fall spielt ein Modul namens ide-cd eine Rolle, in zweiten eines namens ide-scsi.
Ja. Genauer gesagt: im ersteren Fall wird als CD-Treiber das Modul 'ide-cd' verwendet, im zweiten Fall das Module 'sr_mod'. Nun ist aber sr_mod ein Treiber fuer SCSI, braucht also erstens 'scsi_mod' und 'cdrom', aber auch einen 'Hardware-Treiber' fuer den "SCSI- Adapter". Und _dieser_ wird durch ide-scsi emuliert. D.h.: Anwendung -> cdrom -. ,----------------' | ,-> ide-cd -> ide-Treiber -> ATAPI-Hardware `-+ `-> sr_mod -> scsi_mod -. ,----------------------' | ,-> ide-scsi -> ATAPI-Hardware `-+--> aic7xxx -> SCSI-Hardware `-> tmscsim etc. -> SCSI-Hardware
b) Wenn man aber den CD-Brenner nicht nur als CD-ROM betreiben möchte, sondern auch schreibend zugreifen will (also brennen), dann muß für dieses Gerät auf jeden Fall der Pseudo-SCSI-Treiber vorhanden sein.
Genau. Gebrannt werden kann _nur_ ueber das SCSI-Generic Modul 'sg'. cdrecord|cdrdao -> sg -> scsi_mod -> scsi-treiber-modul (also wieder z.B. aic7xxx, tmscsim, oder eben auch ide-scsi ;) Der Unterschied: ide-cd (/dev/hd*) und sr_mod (/dev/sr*) sind block-orientierte und 'read-only'-Geraete (devices), sg (/dev/sg*) sind ein zeichen-orientierte und 'read-write'-Geraete. Auch scannen geht via 'sg', denn mittels sg kann man den Geraeten am (emulierten) SCSI-Bus direkt Kommandos schicken (z.B. "schreib mal die Daten hier auf CD" oder "scan mal und liefer mir die Daten" ;)
c) Weil sich die verschiedenen Verfahren (ide-cd und ide-scsi) gerne mal in die Quere kommen, steht man auf der sicheren Seite, wenn beide Laufwerke als Pseudo-SCSI-Geräte eingerichtet werden.
Genau. Es geht zwar (eigentlich), aber eben nicht unbedingt (bei mir ging es z.B. nicht). Theoretisch sollte es reichen mittels "options ide-cd hdc=ignore" (oder wie das halt geht, siehe die andere Mail) ide-cd zu sagen, es soll sich das Geraet bitte nicht "krallen"...
d) Auf diese Weise ist es dann möglich, sowohl Daten-CDs (oder DVDs) zu lesen als auch Musik-CDs (DVDs) und sowohl den Brenner als Brenner oder als CD-ROM-Laufwerk zu verwenden als auch das DVD-Laufwerk als DVD-Laufwerk oder zum Lesen von CD-ROMs. (Hört sich etwas wirr an: Ich hoffe, es ist trotzdem zu verstehen <G>)
Jep.
Es scheint mir also, daß der reine Pseudo-SCSI-Weg der beste ist.
Zumindest hat's da weniger (Treiber-) Konfliktpotential ;)
Zu diesen Zweck muß ich also SCSI-Module im Kernel haben.
Oder als Module eben ;) [..]
Fall aber dürften so ziemlich alle SCSI-Module vorhanden sein (denke ich mal) - entweder in den Kernel kompiliert oder als Module.
Jep.
Am Mittwoch, 13. März 2002 08:52 schrieb Joerg Thuemmler:
hier ist hdc Dein Brenner! (Also scsi aber - s.u.)
Wenn ich jetzt also in die lilo.conf noch hdd=ide-scsi schreibe, dann sollten beide Laufwerke per Pseudo-SCSI ansprechbar werden, richtig?
Jep.
Und für das Abschalten von ide-cd (was David empfielt und was Joerg durch den Eintrag in die modules.conf wohl auch realisiert), muß ich vermutlich noch irgendetwas wie noide-cd oder so eintragen (ich konnte da keinen passenden append-Parameter finden).
AFAIK ja, aber das Module kennt nur den "ignore=" Parameter, und du scheinst das Modul fest im Kernel zu haben...
Oder ist das schon automatisch erledigt, wenn beide Laufwerke wie oben per ide-scsi festgelgt sind?
Nein. Leider. Ich selbst hab ide-cd schlicht ganz weggelassen ;)
Nun muß ich laut Alexander (trotz der Meldung ide_setup: hdc=ide-scsi ?) noch dafür sorgen, daß das Modul ide-scsi geladen wird:
Ja. Zumindest, wenn's als Modul kompiliert wurde.
Am Mittwoch, 13. März 2002 08:30 schrieb abr-d@betasystems.com:
Nun besteht noch das Problem, das ide-scsi nicht immer gleich zur Startzeit geladen wird. Dazu musst Du in der Datei /etc/init.d/boot.local den Eintrag modprobe ide-scsi Hinzufügen.
Unfug *eg*. Man muss nur die Richtigen Eintraege[tm] (*scnr*) in der modules.conf machen: alias scsi_hostadapter ide-scsi pre-install sr_mod modprobe "-vk" ide-scsi alias block-major-11 sr_mod post-remove sr_mod modprobe "-r" ide-scsi pre-install sg modprobe "-vk" ide-scsi alias char-major-21 sg post-remove sg modprobe "-r" ide-scsi alias iso9660 isofs Die restlichen Abhaengigkeiten kann depmod aufloesen.
Ich habe mal den Verdacht, daß ich ide-scsi fest in den Kernel kompiliert habe, denn die o.a. Meldung taucht ja in der Kernel command line auf und wird offenbar erfolgreich quittiert.
Hm.
Übrigens finden sich alle genannten Module (sr_mod, ide-scsi, ide-cd, cdrom, scsi_mod und sg) im Verzeichnis /usr/src/linux-2.4.18/drivers/scsi - außer cdrom, das sowohl in /usr/include/linux als auch in /usr/src/linux-2.4.10.SuSE/include/linux als cdrom.h und in /usr/src/linux-2.4.18/drivers/cdrom als cdrom.o zu finden ist.
Aber was findet sich in /lib/modules/`uname -r`/? Die Module sind bei 2.4.x: kernel/drivers/cdrom/cdrom.o kernel/drivers/ide/ide-cd.o kernel/drivers/scsi/scsi_mod.o kernel/drivers/scsi/ide-scsi.o kernel/drivers/scsi/sr_mod.o kernel/drivers/scsi/sg.o Was davon fehlt ist entweder fest im Kernel oder fehlt ganz.
Als nächstes sollte ich jetzt die Links im dev-Verzeichnis richtig setzen. Die Numerierung ist dazu wichtig, die ich so finde:
Am Mittwoch, 13. März 2002 05:24 schrieb David Haller:
Siehe aber die Ausgabe von 'sgcheck'
Leider lautet derzeit die Ausgabe noch auf:
Assignment of generic SCSI devices, device host/channel/ID/LUN type(numeric type) vendor model:
Vielleicht probiere ich es einfach erstmal mit scd0 und scd1 (oder sr0, sr1 laut David) und wenn die Reihenfolge vertauscht sein sollte, ändere ich das nachträglich. Es würde sich so ergeben:
Mach mal ein 'modprobe sr_mod'... Dann sollte da was auftauchen.
/dev/cdrom -> /dev/dvd /dev/dvd -> /dev/scd0 ## bzw. sr0 /dev/cdrec -> /dev/scd1 ## bzw. sr1; lesen, blockorientiert /dev/cdrecorder -> /dev/sg1 ## schreiben, zeichenorientiert
Letzteres (sg1) ist mir momentan nicht so ganz klar...
S.o. das ist das "SCSI-Generic" device, das durch 'sg' bereitgestellt wird, und das zum Brennen noetig ist. Wobei:
hdc: SONY CD-RW CRX1611, ATAPI CD/DVD-ROM drive hdd: IDE DVD-ROM 16X, ATAPI CD/DVD-ROM drive
Die symlinks waeren also (vermutlich): /dev/cdrecorder -> /dev/sg0 /dev/cdrec -> /dev/sr0 # bzw. /dev/scd0 /dev/{dvd,cdrom} -> /dev/sr1 # bzw. /dev/scd1
Dann mache ich noch die Einträge in die modules.conf, die Joerg vorschlägt und schliesslich korrigiere ich die fstab.
s.o. und ja ;)
Habe ich das alles richtig verstanden?
Groesstenteils *g*. Generell wuerde ich dir empfehlen also mal folgende append-Parameter zu testen: append="ide-cd=ignore=hdc,hdd hdc=ide-scsi hdd=ide-scsi ..." ^^^^^^^^^^^^^^^^^^^^^ Beim unterstrichenen bin ich mir nicht sicher, ob man das so angeben kann. Vielleicht weiss da jemand anderes mehr, evtl: "ide-cd='ignore=hdc' ide-cd='ignore=hdd' ..." Ansonsten wuerde ich nen neuen Kernel backen (siehe Handbuch, Kernel- Howto und http:/www.dhaller.de/linux/multikernel.html ;) -dnh -- Ich weiß, daß ich das meine. Ich meine, Du weist überwiegend, was Du weist. Oder zu mindest zum Teil. Oder weis man nicht, was man weis? Und merkt es erst, wenn das Wissen gefragt wird? [Jan Tim Schüszler in suse-talk]