[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Feste Adresse eines SATA-Anschlusses
[Thread Prev] | [Thread Next]
- Subject: Re: Feste Adresse eines SATA-Anschlusses
- From: Markus Demleitner <msdemlei@xxxxxxxxxxxxxxxxxxxxx>
- Date: Sun, 13 May 2012 08:15:26 +0200
- To: uugrn@xxxxxxxxxxxxxxx
On Sat, May 12, 2012 at 11:38:01PM +0200, Werner Holtfreter wrote: > Wie kommt das und wie kann man eine feste Adressierung des > SATA-Anschlusses erreichen? Im Groben wirst du wohl um eigene udev-Regeln nicht rumkommen. Disclaimer: Ich habe gerade keinen SATA-Bus in der Naehe und schon gar keinen Wechselrahmen da; insofern kommt hier keine fertige Loesung. So oder so: udevadm dein erster Freund, und zwar in etwa dieser Form: udevadm info --query=all --attribute-walk --name=/dev/hda1 -- der Pfad hinter name ist irgendeiner der zur fraglichen Platte fuehrenden Links. Die Ausgabe ist etwas wie looking at device '/devices/pci0000:00/0000:00:1f.1/ide0/0.0/block/hda/hda1': KERNEL=="hda1" SUBSYSTEM=="block" DRIVER=="" ATTR{partition}=="1" ATTR{start}=="63" ATTR{size}=="5863662" [...] looking at parent device '/devices/pci0000:00/0000:00:1f.1/ide0/0.0/block/hda': KERNELS=="hda" SUBSYSTEMS=="block" DRIVERS=="" ATTRS{range}=="64" ATTRS{ext_range}=="256" [...] looking at parent device '/devices/pci0000:00/0000:00:1f.1/ide0/0.0': KERNELS=="0.0" SUBSYSTEMS=="ide" DRIVERS=="ide-gd" ATTRS{media}=="disk" ATTRS{drivename}=="hda" [...] looking at parent device '/devices/pci0000:00/0000:00:1f.1/ide0': KERNELS=="ide0" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:1f.1': KERNELS=="0000:00:1f.1" SUBSYSTEMS=="pci" DRIVERS=="PIIX_IDE" ATTRS{vendor}=="0x8086" ATTRS{device}=="0x24ca" [...] looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" Wenn du dir das Zeug ansiehst, siehst du, dass Knoten um Knoten immer allgemeinere Geschichten beschrieben werden: Die Partition, die Platte (logisch und als IDE-Einheit), der IDE-Bus, der PCI-Bus, an dem der haengt. Der Trick ist jetzt, eine Kombination von Attributen *aus einem* dieser Bloecke zu bekommen, die genau den Anschluss beschreibt (zur Not kann man mit Tricks auch Eintraege aus verschiedenen Bloecken kombinieren, aber das ist eher kompliziert, und wenn das notwendig erscheint, will man meist nochmal nachdenken). Wenn du das hast, ist der Rest einfach; du suchst das udev-Konfigurationsverzeichnis (/etc/udev/rules.d ist ein guter Startpunkt). Darin legst du eine Datei an (etwa 10_wechselrahmen.rules) und in die schreibst du eine Regel rein, die wie gesagt aus Bedingungen aus einem der udevadm info-Bloecke besteht, und aus einer Aktion, die in deinem Fall das Setzen eines (festen) symlinks sein wird. In deinem Fall wirst du, vermute ich mal, zusaetzlich nicht um eine Spezifikation der "Runde" rumkommen, in der die Regel feuern soll -- wenn ein Geraet erkannt wird, lassen mehrere Schichten im Kernel udev-Events loslaufen (probier udevadm monitor, um mal eine Vorstellung davon zu kriegen), und du willst (z.B.) mit deiner Regel nicht losfeuern, wenn gerade erst PCI erkennt, dass der SATA-Adapter da ist; das kannst du mit einem SUBSYSTEM=='block' erreichen,wenn es das braucht. Deine Regel koennte also so aussehen: SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="*:1", \ DRIVERS=="sd", ATTRS{vendor}=="Mass", \ ATTRS{model}=="Storage Device", SYMLINK+="rahmen%n" -- oder, in einfachen Faellen, auch einfach nur so: SUBSYSTEMS=="scsi", ATTRS{model}=="EADS-00P8B0 ", SYMLINK+="backup%n" Ich vermute, in deinem Fall wirst du eher auf der komplexen Seite liegen... Gruesse, Markus -- UUGRN e.V. http://www.uugrn.org/ http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/