Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
device number 08:04

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Hardware
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
killerhippy



Anmeldungsdatum: 19.05.2000
Beiträge: 529

BeitragVerfasst am: 22. Jul 2001 15:08   Titel: device number 08:04

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

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

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


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 ) und ob's block ist oder nicht?

Wer kann's mir beibringen?

vielen Dank
_________________
Es gibt keine dumme Fragen!

Killerhippy
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

Jochen
Gast





BeitragVerfasst am: 22. Jul 2001 16:56   Titel: Re: device number 08:04

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

Ja.

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?
 

killerhippy



Anmeldungsdatum: 19.05.2000
Beiträge: 529

BeitragVerfasst am: 22. Jul 2001 20:24   Titel: Re: device number 08:04

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

0. die Kernelmeldung bemerken
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
_________________
Es gibt keine dumme Fragen!

Killerhippy
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

Jochen
Gast





BeitragVerfasst am: 23. Jul 2001 8:09   Titel: Re: device number 08:04

Ö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:

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

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:

  • In devices.txt nach einer 8 am Anfang suchen (da alle Einträge nach Major-Number sortiert sind, ist das kein echtes Problem ).
  • 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.
  • 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 immer 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
  •  

    killerhippy



    Anmeldungsdatum: 19.05.2000
    Beiträge: 529

    BeitragVerfasst am: 23. Jul 2001 20:15   Titel: Re: device number 08:04

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

    Killerhippy
     
    Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

    Beiträge vom vorherigen Thema anzeigen:   
         Pro-Linux Foren-Übersicht -> Hardware Alle Zeiten sind GMT + 1 Stunde
    Seite 1 von 1

     
    Gehen Sie zu:  

    Powered by phpBB © phpBB Group
    pro_linux Theme © 2004 by Mandaxy