PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : udev und sda(1)



SebastianG
23.07.2004, 01:17
Hi,

ich habe in paar Probleme mit udev und meinem USB-Stick.
Bei einem frischen System, bzw. einer frischen DEVS-Version gibt es /dev/sda und /dev/sda1 und ich kann damit auch meinen USB-Stick benutzen. Das ganze geht jedoch nur einmal, nachdem ich ihn rausgezogen habe, ist udev so nett und löscht /dev/sda und /dev/sda1 und legt sie auch nicht wieder an.
Was kann ich dagegen machen? Ich hab da mal was von den permission-Geschichten gehört, kann ich damit was reissen?
Es geht mir nicht darum udev auszuschalten, sondern nur darum, dass es /dev/sda und /dev/sda1 nicht löscht.
Für jede Hilfe bin ich dankbar.

cya,
Flamesword

PS: benutze Slackware 10 und Kernel 2.6.8-rc2, mit 2.6.7 hatte ich aber die gleichen Probleme

Unbekannt
23.07.2004, 14:18
Wird villeicht ein /dev/sdb angelegt? Bei mir macht das devfs das nämlich immer bei meinem MP3 Player so und das ist echt nervig. Viel machen kann man dagegen glaub ich nicht, da der Kernel es ja scheints als neues Gerät erkennt und nicht als "altes". :(

SebastianG
23.07.2004, 21:36
/dev/sdb exisitiert schon, aber leider nützt mir das nichts.
Ich kann nur über /dev/sda(1) zugreifen.

Unbekannt
23.07.2004, 22:43
Klar kannst du über /dev/sdb zugreifen.
Das ganze lässt sich glaub ich nur durch fixen des Kernels beheben, denn ich denke nicht, dass das am devfs liegt.
/dev/sda und /dev/sdb sind schließlich 2 ganz verschiedene inodes.
// Edit:
Fipptehler...

DisastersMaster
12.08.2004, 13:58
Ich kann mir schon vorstellen, dass das am devfs liegt. Denn der Vorteil und das ist auch manchmal gleichzeitig sein Nachteil ist, dass das devfs ein dynamisches System ist. Das heißt, dass die devices möglichst dynamisch verwaltet werden sollen. Und das wiederum bedeutet, dass (in der Theorie) in /dev/ immer nur die Anzahl an Geräten zur Verfügung gestellt werden, die auch wirklich gebraucht werden. Und das bedeutet auch, dass, wenn ein Gerät nicht mehr vorhanden ist, auch dessen Device-Datei gelöscht wird. Das klappt soweit uach richtig gut und wunderprächtig.
Aber es schein massive Probleme in die andere Richtung zu geben. Nämlich eine Device-Datei zu erstellen, wenn sie benötigt wird. Das scheint nur beim Systemstart richtig gut zu funktionieren.
Die einzige Lösung, die mir zu dem Thema einfällt ist entweder den Stick mehrmals in unterschiedliche Ports zu stecken (jeweils mit ein paar Minuten Pause dazwischen). Das funktioniert nur dann, wenn du hotplug installiert und gestartet hast.

Die andere Möglichkeit, und wahrscheinlich die am wenigsten nervige ist, die Rückkehr zum alten, statischen Dateisystem. Dort ist /dev/sda1 immer da. Auch, wenn es gar nicht benötigt wird.

Mir fällt gerade noch eine Möglichkeit ein. Es gibt den Befehl MAKEDEV. Damit kannst du nachträglich eine Device-Datei erzeugen lassen.
In deinem Fall würde der Befehl dann heißen: MAKEDEV sda1

Ich hoffe, dass ich etwas helfen konnte.

cu

disaster

P.S.: Da der Artikel in der Rubrik Unix und andere Distris steht, möchte ich drauf hinweisen, dass das was ich beschrieben für Linux war. Ob andere Unixe (*BSD und so) das ähnlich haben, insbesondere hotplug und MAKEDEV, weiß ich nicht.

Unbekannt
12.08.2004, 16:21
DisastersMaster:
Es ist Linux. Und es hat nichts mit dem devfs zu tun. Das macht schon alles richtig.
sda und sdb sind 2 ganz verschiedene Inodes. Und devfs liegt diese nur dynamisch an / löscht sie. Der Kernel denkt aber "Ah, ein neues Laufwerk!" und tada - es wird das nächste Laufwerk während der andere für den Kernel weiterhin existiert, aber nicht mehr verfügbar ist. Das dumme ist, dass der Stick nicht richtig wieder erkannt wird und dann auf das nächste verfügbare SCSI Device gelegt wird, während das alte immer noch existiert - nur halt im devfs nicht, weil der Kernel eben sagt, das Gerät wäre temporär nicht verfügbar.

SebastianG
12.08.2004, 17:06
Nun, das Problem ist einfach, dass /dev/sda1 fehlt.
Ich kann zwar immer wieder mit /dev/MAKEDEV sda bzw. sda1 anlegen, das ist jedoch recht umständlich.

Über /dev/sdb1 oder /dev/sdb kann ich leider nicht zugreifen.
"mount: /dev/sdb1 is not a valid block device"

DisastersMaster
12.08.2004, 17:15
Es könnte evtl. noch eine weitere Ursache geben. Und zwar muß man im Kernel ja auch das sogenannte USB Mass Storage Support (zu finden unter: Device Drivers -> USB Support -> USB Mass Storage Support und in derselben Rubrik sollte wohl auch USB Device Filesystem aktiviert sein) einbinden. Als Modul oder fest. Wie man gerne möchte.
Ich könnte mir unter umständen vorstellen, dass man vergessen hat das zu kompilieren.
Und wenn doch und es ist als Modul dabei, dann sollte man vlt. schauen, ob das Modul geladen ist, wenn man den Stick wieder einstöpselt und bei Bedarf nachladen.

cu

disaster

SebastianG
29.08.2004, 05:12
Hi,

Die Treibergeschichten sind alle fest einkompiliert, sonst könnte ich ja garnicht darauf zugreifen, nachdem ich sda(1) mit MAKEDEV erstellt habe.

pinguin_freund
29.08.2004, 14:22
jo ich hab ein ganz ähnliches problem.
der übersichtshalber möchte ich meien usb geräte mal aufzählen:
1. digicam
2.chipkartenleser, intern verbaut
3.usbhub
4.webcam
auserdem wird noch mein sata als sda gemountet

also, sda ist immer mein sata.
früher war der chipkartenleser immer ein anderes sd*, meist jedoch sdb, es lies sich jedoch immer problemlos mounten, bis eines tages mein vater eine gemountete cf karte rauszog weil er sie brauchte. von da an ging nix mehr mit usb, weder die digicam noch meine mmc/sd karten zu mounten, weil schlichtweg meien gerätedateien verschwunden sind und beim einstecken des geräts kene neuen mehr auftauchem o_O das geht soweit, das weder ein neustarten, noch ein aus und wuiedereinstechen des chipkartenlesers noch ein boot ganz ohne usb geräte irgendetwas ändern kann. die idee eine statische gerätedatei ist ansich gut, aber wen es die möglichkeit gibt, das dynamisch zu machen warum nicht? im übrigen hab ich das ausprobiert mit dem befehl, ich kan absolut nichts meounten ich habs bis sdk ausprobiert, es geht einfach nicht, da komt immer kan nicht gemountet werden usw....

also wer eine lösung für mein problem weis, egal wie verückt und kompliziert, bite heir posten, meine mmc karte platzt bald wen cih ie bilder net bald aufm pc krieg :(

jimbo
29.08.2004, 17:27
also dass deine sata platte sda is leigt daran dass die 2.6er kernelreihe sata platten die scsi geräte ansteuern KANN
den sinn dahinter kenn ich ned aber man kann diese (ich nenns mal) sata-scsi-emulation auch abschalten du musst im scsi menü beim kernel confen schaun... wos genau is weiss ich jetzt ned wenn dus ned findest kann ich gern mal schaun!
wenn du diese emulation ausschaltest dann wird deine sata platte als hdg bzw hdf angesprochen