Symptome und Geltungsbereich
- Das Modul lädt trotz vorhandener Datei nicht.
- Der Kernel nennt Unknown symbol oder disagrees about version of symbol.
Betroffene Umgebung
Kernelmodule aus Paketen oder externen Builds; Symbolauflösung unterscheidet sich vom Laden gemeinsamer Userspace-Bibliotheken.
Erkennbare Meldungen (synthetische Beispiele)
example_module: Unknown symbol drm_open (err -2)Bereitsteller-Verfügbarkeit und Modul-Build-Kontext prüfen; dies betrifft im Unterschied zum Userspace-Linker das Laden eines Kernelmoduls.
example_module: disagrees about version of symbol module_layoutGegen exakten Kernel und Symbolinformationen neu bauen, statt das unpassende Modul zu erzwingen.
Mögliche Ursachen
Das sind mögliche Erklärungen, keine bestätigte Diagnose. Mehrere unabhängige Fehler können gleichzeitig vorliegen.
- Ein benötigtes Bereitsteller-Modul oder optionaler Kernelbestandteil kann fehlen.
- Das Modul kann gegen falsche Kernel-Konfiguration oder Symbolversionsdaten gebaut sein; passende uname-Version allein genügt nicht.
Sicher prüfen
Führe jeweils einen Befehl in der passenden Sitzung aus. Lies zuerst die Erklärung. Großgeschriebene Platzhalter brauchen deine Werte; Werkzeuge und Rechte unterscheiden sich je nach Distribution. Die Website zeigt Befehle an und führt sie niemals aus.
Prüfschritt 1
Exakte fehlende oder unpassende Symbole lesen; Kernel-Journalzugriff kann Administratorrechte erfordern.
journalctl -b -k --no-pager --grep='Unknown symbol|disagrees about version of symbol'Ergebnis einordnen: Eine Versionsabweichung stützt ABI-Konflikt; ein ungelöstes Symbol allein kann auch einen nicht installierten oder nicht geladenen Bereitsteller bedeuten.
Prüfschritt 2
example_module durch das gescheiterte Modul ersetzen. Geplante Modulabhängigkeiten werden ohne Laden aufgelistet.
modprobe --show-depends example_moduleErgebnis einordnen: Fehlender Bereitsteller oder unerwarteter Pfad deutet auf Paket-/Abhängigkeitsprobleme. Erfolgreiches Auflisten belegt keine passende Symbol-ABI.
Nächste Schritte nach Befund
Benötigtes Bereitsteller-Paket wiederherstellen
Gehört das Symbol zu einem fehlenden unterstützten optionalen Kernelbestandteil, entsprechendes Distributions-Modulpaket für laufenden Kernel installieren. Normale Paketaktualisierung des Abhängigkeitsindexes und Ladereihenfolge nutzen.
Vorsicht: Bereitsteller nicht anhand ähnlich benannter Symbole raten und keine Module anderer Version kopieren. Ersatz nicht ohne dokumentiertes Verfahren in einen aktiven Gerätepfad laden.
Wiederherstellung / Rücknahme: Bei Auswirkungen auf funktionierendes Gerät vorherigen Paket-Snapshot und Starteintrag wiederherstellen.
Hat dir dieser Hinweis geholfen?
Mit passenden Symbolversionsdaten neu bauen
Bei Versionsabweichung externes Modul gegen exakten unterstützten Kernel-Build samt Module.symvers über dokumentiertes Paketverfahren neu bauen. Zusammengehörige externe Module gegen dieselben Symbolinformationen bauen.
Vorsicht: modules_prepare allein erzeugt bei aktiver Modulversionierung keine Module.symvers. Keine force-modversion-Umgehung dieses Hinweises nutzen.
Wiederherstellung / Rücknahme: Bei fehlgeschlagenem Neubau vorheriges kompatibles Modul-/Kernelpaketpaar nutzen; vorheriges Abbild bei enthaltenen externen Modulen wiederherstellen.
Hat dir dieser Hinweis geholfen?
Quellen und Prüfung
Diese Anleitung basiert auf Originalquellen von Projekten oder Distributionen und wurde am genannten Datum redaktionell geprüft. Das ist eine Quellenprüfung, kein Nachweis einer auf deiner Hardware reproduzierten Lösung. Log-Beispiele sind synthetische Testdaten. Versionsabhängige Details müssen zur installierten Ausgabe passen.
- External modules: Module.symvers and modversions (Projekt- oder Distributionsdokumentation)
- NVIDIA unresolved kernel-symbol examples (Projekt- oder Distributionsdokumentation)
- Kernel module symbol-version rejection implementation (Upstream-Implementierung; Verhalten ist versionsabhängig)