device number 08:04

Post Reply
Message
Author
User avatar
killerhippy
Posts: 529
Joined: 19. May 2000 19:36
Contact:

device number 08:04

#1 Post by killerhippy »

Hm, manchmal spricht linux mit mir in einer schwer verstaendlichen Sprache...

Neue Meldung von `dmesg` nachdem das iomega-zip wunderbar funktioniert:

<i>scsidisk I/O error: dev <b>08:04</b>, sector 416
Directory sread (sector 0x1a0) failed</i>

nun, da kann es sich ja nur um die neue Hardware handeln, trotzdem mal ein Blick ins '/usr/src/linux/Documentation/devices.txt' geworfen und verwirrt aufgegeben.

Wohl fehlt mir das allegemeine Verstaendnis um was zu finden.Die Sortierung ist nach 'x char' und 'block' gelistet, nur wie finde ich heraus, wieviel char mein device hat (sicher ne lustige Frage fuer Leute, die sich da schon auskennen <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">) und ob's block ist oder nicht?

Wer kann's mir beibringen?

vielen Dank
Es gibt keine dumme Fragen!

Killerhippy

Jochen

Re: device number 08:04

#2 Post by Jochen »

> (sicher ne lustige Frage fuer Leute, die sich da schon auskennen)

Ja. <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Die Kernel-Meldung spricht vom Device mit Major-Number 8 und Minor-Number 4. Da die Fehlermeldung von scsidisk kommt, kann es sich nur um eine blockorientierte Gerätedatei handeln.

Generell wird ein Treiber unter Linux (UNIX) durch drei Werte bestimmt: Major-Number (welcher generelle Treiber ist es eigentlich: SCSI-Disk, IDE-Disk usw.), Minor-Number (welche Platte/Partition am SCSI-Controller) und zeichen- bzw. blockorientiert. Der Unterschied zwischen block- und zeichenorientiert liegt darin, dass a) man auf blockorientierte Gerätedateien wahlfrei zugreifen darf, d.h. man kann auch ein lseek() auf das Device machen, wogegen zeichenorientierte Gerätedateien sequentiell funktionieren (TTYs, Tapes,...) und dass b) blockorientierte Geräte vom Betriebssystem immer gebuffert werden, zeichenorientierte nicht zwangsweise.

In der devices.txt schaust Du erst mal nach der Major-Number, die ist dann aufgeteilt in block- und zeichenorientiert, und dort sind dann jeweils die Minor-Numbers aufgeführt. "dev 08:08" dürfte übrigens /dev/sda4 entsprechen, also der 4. Primären Partition der ersten Platte am ersten Controller.

OK?

User avatar
killerhippy
Posts: 529
Joined: 19. May 2000 19:36
Contact:

Re: device number 08:04

#3 Post by killerhippy »

Hi Jochen, vielen Dank fuer die Antwort. Wenn ich das richtig verstanden habe, ist die Vorgehensweise so:

0. die Kernelmeldung bemerken <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
1. in devices.txt nach dem Treiber suchen, hier SCSI
2. dev 08:04 ist Major 8 block 0, also /dev/sda, Partitionen werden (fast) wie IDE-Platten behandelt, also
3. IDE Treiber suchen, fuer dev 08:04 gilt Minor 4 ist fuer diesen Fall /dev/sd4.

Richtig?

Waere es eine /dev/hdb1 gewesen, waehre die Major/Minor Nummer 64:01 , richtig?

danke nochmals, wieder was gelernt <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
Es gibt keine dumme Fragen!

Killerhippy

Jochen

Re: device number 08:04

#4 Post by Jochen »

Öh, nee, noch nicht ganz...

Mach mal ein "ls -l" auf /dev/sda4. Dort, wo bei normalen Dateien und Verzeichnissen die Dateigrösse steht, siehst Du bei Gerätedateien (b oder c als allererster Buchstabe) zwei durch Komma getrennte Werte: Major-Number und Minor-Number. Wenn Du nun auf diese Datei zugreifst, sagst Du damit dem Kernel, dass Du auf Hardware zugreifen willst, deren Treiber unter der Major-Number 8 registriert ist, und zwar blockorientiert. Dieser wiederum interpretiert die Minor-Number als Angabe, welche Platte bzw. welche Partition gemeint ist. In unserem Fall ist das die 4, und damit wird die 4. primäre Partition definiert. Das ist bei EIDE-Kontrollern nicht anders: Major 3 sagt "1. EIDE-Controller", Minor 0 "Ganze Masterplatte", Minor 1 "1. prim. Part. der Masterplatte" usw.

Mal ein Auszug aus der devices.txt:<pre>
3 char Pseudo-TTY slaves
0 = /dev/ttyp0 First PTY slave
1 = /dev/ttyp1 Second PTY slave
...
255 = /dev/ttyef 256th PTY slave

These are the old-style (BSD) PTY devices; Unix98
devices are on major 136 and above.

block First MFM, RLL and IDE hard disk/CD-ROM interface
0 = /dev/hda Master: whole disk (or CD-ROM)
64 = /dev/hdb Slave: whole disk (or CD-ROM)

For partitions, add to the whole disk device number:
0 = /dev/hd? Whole disk
1 = /dev/hd?1 First partition
2 = /dev/hd?2 Second partition
...
63 = /dev/hd?63 63rd partition
</pre>
Als erstes steht die Major-Number, hier 3. Danach hast Du (meistens) einen Block für die zeichenorientierten Geräte (char, hier Pseudo-TTY Slaves) und einen für die blockorientierten Geräte (block, hier "First MFM, RLL and IDE hard disk/CD-ROM interface"). Darunter sind dann die Minor Numbers aufgelistet, über die unterscheidet der Treiber beispielsweise, ob er auf die Master- oder Slaveplatte zugreifen soll.

Also musst Du Dein "dev 08:04" wie folgt aufdröseln:

<li>In devices.txt nach einer 8 am Anfang suchen (da alle Einträge nach Major-Number sortiert sind, ist das kein echtes Problem <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">).
<li>Dort entscheiden, ob der Treiber zeichen- oder blockorientiert ist. SCSI-Disk kann nur blockorientiert sein, aber die Major 8 zeichenorientiert gibt es sowieso nicht, also ist alles einfach.
<li>Hier in die Minor-Numbers schauen. Eintrag 4 gibt es zwar nicht, aber man erkennt schon mal, dass es sich um /dev/sda? handeln muss. Ansonsten wie bei den IDE-Platten vorgehen, dass heisst, dass die Partitionen einfach nur durchnummeriert werden (1-4 prim. Part, 5-15 logische Partitionen).

Dementsprechend ist /dev/hdb1 auch 3:65 und nicht 64:1, hier schmeisst Du die Major/Minors durcheinander. /dev/hd[ab] hat <i>immer</i> Major 3, punktum. Minor 0 ist "die ganze 1. Platte", Minor 64 "die ganze 2. Platte". Für die Partitionen wird dann einfach deren Nummer auf die Minor draufaddiert.

So, jetzt klarer?

Jochen

User avatar
killerhippy
Posts: 529
Joined: 19. May 2000 19:36
Contact:

Re: device number 08:04

#5 Post by killerhippy »

Jochen, vielen Dank, jetzt hab' ich's endgueltig gerafft.
Es gibt keine dumme Fragen!

Killerhippy

Post Reply