Laden eines Kernelmoduls für ein bestimmtes Device verhindern

  • Hallo,


    ich habe folgendes Problem:
    Auf meinem Mainboard befinden sich neben 6 SATA-Anschlüssen vom Chipsatz noch zwei ASMedia-Controller, die auch noch jeweils 2 SATA Ports zur Verfügung stellen. Das sind alles Onboard-Komponenten.


    Wie auch immer, sowohl für den Chipsatz als auch für die ASMedia-Controller wird das Kernelmodul ahci automatisch geladen.
    Ich will allerdings einen der ASMedia-Controller an eine VM durchreichen und deshalb soll für diesen das ahci-Modul nicht geladen werden.
    Mit Xen habe ich das bisher mit dem xen-pciback Modul gemacht, welches ich für den betreffenden Controller geladen habe. Das hat auch tadellos funktioniert. Das ahci-Modul fühlte sich dadurch dann nicht mehr für den betreffenden Controller zuständig.
    Jetzt beschäftige ich mich mit KVM und möchte das Gleiche tun. Allerdings habe ich bei KVM kein vergleichbares Modul zu xen-pciback gefunden.


    Wie sage ich nun also dem achi Modul oder dem Kernel, das er den betreffenden Controller in Ruhe lassen soll?


    Ein unbind im laufenden Betrieb kommt leider nicht in Frage. An dem Controller hängt ein BluRay Laufwerk. Damit kommt der Linux-Kernel leider nicht zurecht. Wenn achi dann versucht den Controller anzusprechend, dann kommt es zu diversen ATA-Fehlern und das System bootet nicht mehr. Bislang war das, wie gesagt, kein Thema. Durch xen-pciback hat sich der Kernel schlicht nicht darum gekümmert. Und in der VM lief Windows, was mit dem Laufwerk an diesem Controller wunderbar zurecht kommt.


    Vielleicht habt Ihr einen Lösungsansatz.


    Grüße

  • Was sagt denn "modinfo ahci"? Vielleicht gibt es ja einen Parameter, so dass das Modul sich nur um bestimmt Devices kümmert.
    Oder ist das vielleicht eine udev-Geschichte?


    Lars.

  • Also etwas weiter bin ich gekommen:
    Das KVM Äquivalent zu xen-pciback heißt pci-stub.
    Leider gibt man bei pci-stub nicht (wie bei pciback) die PCI-Adresse des Gerätes an, sondern dess VendorID und DeviceID. Da funktioniert soweit. Allerdings ist es in meinem Falle so, das es zwei ASMedia Sata Controller im System gibt. Und die greift sich pci-stub dann beide. Es sollte aber eigentlich nur einer sein.


    Aktuell ist meine Lösung noch die, das ich dann nachträglich den einen Controller vom pci-stub unbinde und anschließen an ahci binde. Das geht, ist aber halt irgendwie unschön.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!