• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

SCSI Streamer: /dev/st2 bis /dev/st5 aktivieren?

davidA77

Newbie
Hallo,

Ich bin neu hier im Forum. Mit Linux beschäftige ich mich schon eine Zeit lang. Nun hab' aber mal wieder ein Problem und hoffe dass mir hier jemand helfen kann.

Ich habe einen Linux Server (SuSE 8.0) der mir u.a. auch als Backupserver dient. Bisher habe ich das mit zwei Tandberg SLR5 Streamern gemacht. Um es bequemer zu haben möchte ich nucn noch drei SLR Streamer hinzufügen. Die Streamer werden auch alle korrekt erkannt (SCSI Karte Adaptec 2940 erkennt alle SCSI Laufwerke). Auch beim Linux Boot werden die Laufwerke aufgeführt. Dort steht dann auch das das dritte Streamer Laufwerk als st2 installiert wurde.
Ein Versuch mit tar auf /dev/st2 zu schreiben klappte nicht: No such device.

In /dev/ ist nur st0 und st1 vorhanden. Deswegen denke ich mal müsste hier auch st2 stehen, wenn ich st2 ansprechen möchte, richtig?
Also die Frage: Wie bekomme ich /dev/st2 ? Wie kann ich weitere Devices hinzufügen?

Ich hoffe auf eure Hilfe.

David
 
A

Anonymous

Gast
Bei den alten SuSe -Versionen sind nur die ersten beiden Tapedeviceknoten angelegt.
Du kannst aber jederzeit welche dazufügen.
als root natürlich
Code:
mknod /dev/st2 c 9 2
mknod /dev/st2l c 9 34
mknod /dev/st2m c 9 66
mknod /dev/st2a c 9 98
mknod /dev/nst2 c 9 130
mknod /dev/nst2l c 9 162
mknod /dev/nst2m c 9 194
mknod /dev/nst2a c 9 226

mknod /dev/st3 c 9 3
mknod /dev/st3l c 9 35
mknod /dev/st3m c 9 67
mknod /dev/st3a c 9 99
mknod /dev/nst3 c 9 131
mknod /dev/nst3l c 9 163
mknod /dev/nst3m c 9 195
mknod /dev/nst3a c 9 227

mknod /dev/st4 c 9 4
mknod /dev/st4l c 9 36
mknod /dev/st4m c 9 68
mknod /dev/st4a c 9 100
mknod /dev/nst4 c 9 132
mknod /dev/nst4l c 9 164
mknod /dev/nst4m c 9 196
mknod /dev/nst4a c 9 228

mknod /dev/st5 c 9 5
mknod /dev/st5l c 9 37
mknod /dev/st5m c 9 69
mknod /dev/st5a c 9 101
mknod /dev/nst5 c 9 133
mknod /dev/nst5l c 9 165
mknod /dev/nst5m c 9 197
mknod /dev/nst5a c 9 229

ich hoffe ich kann noch richtig zählen, dann sollte es passen.
Anschließend die angelegten Knoten noch mit chmod 660 .... und chgrp disk ... auf die richtigen Zugriffsrechte bringen. (statt der ... müsen natürlich die Knotennamen stehen)

robi
 

Martin Breidenbach

Ultimate Guru
robi: das mit dem mknod ist so eine Sache die ich mir immer mal anschauen wollte... da Du's ja offenbar bereits kapiert hast...hast Du nen schnellen Link wo mal erklärt wird wie das geht oder darf ich selbersuchen ? :D
 

TeXpert

Guru
für den Anfang: man mknod und /usr/src/linux/Documentation/devices.txt :) oder natürlich die letzte Version der Device-List: http://www.lanana.org/docs/device-list/
 
A

Anonymous

Gast
mknod -na ja ist nicht ganz leicht gebe ich ehrlich zu. Schauen wir uns erst mal einig Deviceknoten an.
Code:
brw-------   1 root root     13,  73 2004-04-06 15:27 xdb9
crw-------   1 root root     10, 179 2004-04-06 15:27 xsvc
crw-------   1 root root     41,   0 2004-04-06 15:27 yamm
brw-------   1 root root     37,   0 2004-04-06 15:27 z2ram
Wir sehen als erstes Zeichen ein b oder c als Type für das Device.
dort wo normalerweise die Größe der Datei stehen müsste, sehen wir zwei mit Komma getrennte Zahlen, Das sind die Major- und Minornumbern des Knotens, mit ihnen wird der Treiber und die DeviceNummer sowie eventuelle Eigenschalften des Treibers festgelegt.

Der Befehl lautet erstmal
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
die Optionen sind nicht das Problem, es gibt auch nicht allzuviele, sie beschäftigen sich ehr mit den Zugriffsrechten und können hinterher auch noch bequem mit "normalen Mitteln" gesetzt werden.

Über den Namen reden wir mal nicht, es sollte zwar ein Name nach Konvention gesetzt werden, aber es ist eben nur ein Name und somit auch austauschbar.

Type- hier wird es schon interessanter wir haben 3 Möglichkeiten. Hiermit wird der prinzipielle Devicetype des Knotens festgelegt.
p für "named Pipe", das braucht man als Programmierer oder Scripter des öftern mal. Also eine Pipe ähnlich wie "|" nur das ich "|" immer nur zwischen Verwanden Prozesse einsetzen kann, eine named Pipe wird über den Namen angesprochen und desshalb müssen die beiden Prozesse nicht verwand sein, es reicht wenn sie den Namen kennen und die Zugriffsrechte ausreichen. Von der Shell kann man zB mit ">" in die Pipe schreiben und ein anderer Prozess muss (sonst wird der andere Prozess angehalten) gleichzeitig mit "<" daraus lesen, ansonsten funktioniert das "Ding" wie eine normale Pipe. Da der Schreibende Prozess warten muss bis jemand aus der Pipe ließt wird eine named Pipe auch des öfteren zu Syncronisationsaufgaben benutzt. Bei diesem Type entfallen sowohl MAJOR-Number als auch MINOR-Number bei der Erstellung mit mknod.

b Blockdevice, also Devices welche Blockweise vom Kernel angesprochen werden, diese Devices sind gebuffert, das ist zum Beispiel bei den Festplattendevices so, die intern vom Kernel gecachet werden.

c das werden dann Characterdevices in UNIX manchmal auch als RAW-Devices bezeichnet. Jedes Byte wird einzeln an das Device gesendet oder von diesem gelesen und zwar ungebuffert vom Kernel. Als Sonderform jedoch selten benutzt u das währen dann unsigned Devices also nur der Unterschied wie die Byte interpretiert werden sollen mit oder ohne Vorzeichen.

Die MAJOR oder Majornumber ist die wichtigste, mit ihr wird der Treiber festgelegt mit dem dieses Device bedient wird. Eine Zuordnung der wichtigsten im Kernel fest einkompilierte Majonumber findet man in der Datei /usr/include/linux/major.h oder gleichnamig in den Kernelquellen.

Die MINOR oder Minornumber bezeichnet mit den niederen Bits die Instanz also die Nummer des Gerätes selbst, höhere Bits können wie zB beim st-Treiber bestimmte Eigenschaften des Treibers ein oder ausschalten. Das ist aber immer treiberspezifisch.

Welchen Type von Devices welcher Treiber unterstützt ob c oder b oder sogar beide und welche Eigenschaften mit welchem Bit in der Minornumber geschaltet wird, und wie die Devicenamen aussehen sollten, muss man im einzelnen immer aus der Beschreibung des Treibers oder aus dem Quelltext herauslesen.

In der Regel braucht man mknod nur dann, wenn man mal versehentlich einen Knoten gelöscht hat oder man Knoten erweitern muss, dann reicht es oftmals wenn man sich die vorhandenen Knoten auf dem System genauer ansieht und die Namen und Minor entsprechend hochzählt, oder einfach mal schnell auf einem anderem LINUX mit ls -l /dev/ nachschaut.
So kann man dann meist schnell die notwendigen Optionen für den mknod-Befehl den man braucht, zusammensuchen.
Alles andere wird meist kompliziert und man sollte die Treiberdoku und oder den Treiberquelltext genauestens lesen.

robi
 
Oben