Folgendes blogge ich eigentlich nur, weil ich bei Google mal gegen die vielen vielen Einträge mit "reassigndev" anstinken will
Das Problem:
XEN wirft beim Booten einer VM den Fehler "Error: <pci-bus-id>: non-page-aligned MMIO BAR found" und verweigert den Start einer virtuellen Maschine in die ein PCI-Device durchgereicht wird. Der Grund hierfür sind "unsaubere" Speicher-Bereiche, die nicht an einer 4KB-Grenze beginnen, ganz einfach unter /proc/iomem zu sehen, wenn der Range nicht mit "0xNNNNN000" beginnt.
Das zweite Problem:
Gibt man die Fehlermeldung bei Google ein, wird man jede Menge hilfreiche Tipps bekommen, es mit dem Kernel-Parametern "reassign_dev=<pci-bus-id>[,...]" und "reassign_resources" - ich bin mir auch sicher, dass die wirklich gut funktionieren. Auf einem alten Kernel.
Die Lösung:
Die Lösung ist recht einfach, aber war für mich schwer zu finden. Irgendwann ist dieser Parameter schlichtweg umbenannt bzw. aufgeräumt worden. Den selben Effekt kann man nun erreichen, indem man stattdessen einfach ein "pci=resource_alignment=<pci-bus-id>" in den Kernel-Parametern angibt.
Im Kernel-Log sieht das bei Erfolg dan btw. so aus:
pci 0000:05:00.0: reg 10 32bit mmio: [0xfebffc00-0xfebffdff]
pci 0000:05:00.0: Disabling memory decoding and releasing memory resources.
pci 0000:05:00.0: Rounding up size of resource #0 to 0x1000.
Kommentare