Gerätedateien erstellen?

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
tantalus

Gerätedateien erstellen?

Beitrag von tantalus » 21.10.2002 12:14:46

Wie bekomme ich heraus welche Major und Minornummern ich für welches gerät verwenden kann?
Gibt es da so was wie die /etc/services eben nur für device-dateien?

Benutzeravatar
Nogger
Beiträge: 64
Registriert: 09.05.2002 13:47:53
Wohnort: Wolfsburg

Beitrag von Nogger » 21.10.2002 12:19:09

In der Kerneldokumentation muesste das drinstehen.

evtl. Kernelsourcepaket (version des iinstallierten Kernels) und dann in /usr/src den tarball entpacken. anschliessend in /usr/src/<entpackter Kernel>/Dokumentation suchen.

Benutzeravatar
Nogger
Beiträge: 64
Registriert: 09.05.2002 13:47:53
Wohnort: Wolfsburg

Beitrag von Nogger » 21.10.2002 12:21:53

Upps. Vergessen, dass du wahrscheinlich erst mit apt-get install kernel-source-<version> den tarbal installieren musst.

Viel Glueck

tantalus

Beitrag von tantalus » 21.10.2002 12:41:11

Vielen Dank für den Tip.
Allerdings habe ich da noch eine Frage:

1 char Memory devices
1 = /dev/memPhysical memory access
2 = /dev/kmemKernel virtual memory access
3 = /dev/nullNull device
10 char Non-serial mice, misc features
0 = /dev/logibmLogitech bus mouse
1 = /dev/psauxPS/2-style mouse port
Das ist nur mal ein ganz kurzer auszug aus der datei devices.txt
wie gebe ich den Typ ein?

mknod mymem c 2 0
Woher weiß ich das er 1char für memorydevices nimmt und nicht 10 char für Non-serial geräte?
Oder muss ich als type dann so was wie 10c für
Non-serial mice geräte angeben?

Benutzeravatar
Nogger
Beiträge: 64
Registriert: 09.05.2002 13:47:53
Wohnort: Wolfsburg

Beitrag von Nogger » 21.10.2002 13:33:14

Was willst du denn eigendlich erstellen??

Ich habe ausser bei meinem Joystick noch nie mit mknod arbeiten muessen.
Versuch es doch mal mit MAKEDEV (man MAKEDEV)

tantalus

Beitrag von tantalus » 21.10.2002 13:43:15

MAKEDEV /dev/sr0
Dann sagt er mir das er nicht weiß was er erstellen soll.
Da es sich um ein DVD laufwerk handelt und eigentlich am /dev/hdc dran hängt sich dort aber nicht ansprechen läßt, es reagiert nur auf sr0. leider habe ich einen schußelfehler gemacht als ich /dev/dvd auf sr0 verlinken wollte habe ich die quelle mit dem ziel vertauscht. Damit ist die Geräte datei weg. Und neu installieren wollte ich nicht. Und eigentlich interressiert es mich generell. Es muss ja möglich sein alles irgendwie selbst zu bauen Oder?
Und was macht man wenn man MAKEDEV mal gerade nicht installiert hat?

Benutzeravatar
Dookie
Beiträge: 1104
Registriert: 17.02.2002 20:38:19
Wohnort: Salzburg
Kontaktdaten:

Beitrag von Dookie » 21.10.2002 14:58:07

Hi tantalus,

bei mir ist /dev/sr0 ein link auf /dev/scd0
versuch mal ein ln /dev/scd0 /dev/sr0

Gruß

Dookie

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 21.10.2002 15:10:10

Da es sich um ein DVD laufwerk handelt und eigentlich am /dev/hdc dran hängt sich dort aber nicht ansprechen läßt,
Wiso lässt es sich nicht ansprechen? Ich will nicht behaupten das es geht, ich hab mein dvd über scsi-emulation am Laufen, weil ich einen Brenner eingerichtet habe und dann das dvd auch gleich über scsi angesprochen. Aber es sollte doch nichts dagegen sprechen das dvd direkt über /dev/hdx anzusprechen oder?

Und sonst um ein dev-file anzulegen

Code: Alles auswählen

mknod /dev/sr0 x XX XX
Ich kenne es nur von einer usb-webcam, dort wars

Code: Alles auswählen

mknod /dev/video0 c 81 0 
gruss
manuel

Benutzeravatar
Nogger
Beiträge: 64
Registriert: 09.05.2002 13:47:53
Wohnort: Wolfsburg

Beitrag von Nogger » 21.10.2002 20:04:47

Versuch mal folgendes:

cd dev; ./MAKEDEV -n -v update
Da zeigt MAKEDEV, was er machen würde.

Wenn es passt, dann einfach -n weglassen.

dann

ls -al /dev/scd0

sollte wieder da sein....

dann sr0 als link darauf (/dev/sr0 -> scd0)

tantalus

Beitrag von tantalus » 22.10.2002 08:52:28

Das Problem ist das /dev/sr0 kein link nach /dev/scd0 war. Aber eigentlich war das nicht meine direkte frage. Meine Frage war wie man den Typ einer geräte datei angibt. Da in der Device.txt ja mehrere devices mit char angegeben sind z.Bsp.: 2 char und dann die Major nummern und die minor nummern .
Das ganze wiederholt sich nur das sich der der typ in der aufzählung erhöht. Wie unterscheide ich die geräte, oder erkennt mknod das von alleine?
Bsp.:
6 charParallel printer devices
0 = /dev/lp0Parallel printer on parport0
1 = /dev/lp1Parallel printer on parport1

7 charVirtual console capture devices
0 = /dev/vcsCurrent vc text contents
1 = /dev/vcs1tty1 text contents
Bzw. erkennt das mknod an dem Namen der gerätedatei?
Danke erstmal an alle, für eure Tips.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 22.10.2002 18:10:54

Hast Du schonmal "man mknod" ausprobiert?

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

tantalus

Beitrag von tantalus » 23.10.2002 09:29:03

Ja natürlich aber das bringt mich der Antwort meiner frage nicht weiter, denn die kennen nur c u p und b.
Bedeutet das nun das der Kernel automatisch erkennt was für ein gerät ich einbinden möchte?

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 23.10.2002 15:01:58

Der Kernel erkennt welches Gerät sich hinter einer Datei versteckt an den Major und Minor Nummern.

Im Prinzip könnte man auch "mknod /dev/ide-festplatte b 3 0" machen und der Kernel würde das dann wie /deb/hda behandeln. Nur würde dann natürlich kein Programm Deine Festplatte finden, weil die alle davon ausgehen, dass die /dev/hda heisst...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

tantalus

Beitrag von tantalus » 23.10.2002 15:47:46

Daraus schließe ich jetzt einmal das dem Kernel das eigentlich egal ist was für ein gerät dort ist. Das einzige was den kernel also interressiert ist das er wissen muss ob es sich um ein zeichenorientiertes gerät (sprich: char) oder Blockorientiertes gerät (sprich: b) oder aber um eine FiFO (sprich: p) handelt. Und das es letztlich an den Programmen liegt ob sie mit einem entsprechenden gerät zusammen arbeiten können, solange es unter dem richtigen dateinamen zu finden ist (bsp. /dev/input/mice == USB-Maus).
Sehe ich das jetzt richtig oder habe ich da etwas falsch verstanden.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 23.10.2002 16:13:14

Ich glaube ich versteh Dein Problem nicht...

Was meinst Du mit "was für ein Gerät..."? Die Gerätedateien sind nur die Zugriffspunkte. Der kernel läd einen Treiber (Modul) für das Gerät, und verbindet diesen treiber dann anhand der Major/Minor Nummern mit der Datei in /dev. Danach ist das Gerät über das entsprechende Device erreichbar. Ob da jetzt ein Pioneer DVD-ROM oder ein TEAC CD-ROM z.B. dran hängt ist egal...

Was genau an z.B. /dev/usb/mouse hängt ist egal, solange es ein USB Maus ist. ;-)

Der Treiber findet halt eine USB-Maus, woraufhin der Kernel die Verbindung zwischen der gefundenen Maus und der /dev/usb/mouse Datei herstellt. Danach funktioniert die Maus an dem Port...

Falls es immer noch nicht klar ist, dann erklär mir doch mal, welche Information Deiner Meinung nach dem Kernel fehlt (was sollte er noch wissen)? Mach 'mal ein Beispiel...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

tantalus

Beitrag von tantalus » 24.10.2002 08:48:03

Ich denke das ich das nun schon verstanden habe!
Mein Problem ist eigentlich nur, das ich alles sehr sehr genau wissen will. Und wenn du dir diese datei anschaust:
file://localhost//usr/src/linux-2.4.18/Documentation/devices.txt
wirst du sehen das es mehr als ein Block-character-fifo-Device gibt. Und das sich die Major- und Minor- wiederholen, das heißt es treten immer wieder die selben auf, und der Typ ist eben z.Bsp.: 145 char gekennzeichnet und nicht eben nur mit c für char, allerdings sind die Gerätedateinnamen eben unterschiedlich.
Ich möchte mich bei Euch und Eurer geduld bedanken, für die Hilfestellungen.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 24.10.2002 10:06:28

tantalus hat geschrieben:wirst du sehen das es mehr als ein Block-character-fifo-Device gibt. Und das sich die Major- und Minor- wiederholen, das heißt es treten immer wieder die selben auf, und der Typ ist eben z.Bsp.: 145 char gekennzeichnet und nicht eben nur mit c für char, allerdings sind die Gerätedateinnamen eben unterschiedlich.
Mit Sicherheit nicht. Major und Minor sind eindeutig, allerdings nur ZUSAMMEN. Soll heissen, jede Kombination aus Major/Minor/cbp gibt es nur einmal und kann genau einem Gerät zugeordnet werden.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Antworten