Beim Einrichten oder Replizieren eines vorhandenen Ubuntu 22.04- oder 24.04-Systems können Laufzeitfehlermeldungen auftreten.

Symptome

Da sich dieses Szenario auf die gesamte Treiberfunktion auswirkt, können Treiber verschiedene Fehlermeldungen ausgeben, darunter Meldungen über interne Fehler oder Hardwarefehler. Beispiel:

The device could not be calibrated.
Status Code: -50152
A hardware failure has occurred. The operation could note be completed as specified.

Betroffene Distributionen und Kernel

Dieses Problem wurde auf folgenden Systemen reproduziert:

  • Ubuntu 22.04.04 HWE (Kernel 6.8.0-40-generic)
  • Ubuntu 24.04.01 (Kernel 6.8.0-40-generic)

Sie können die Kernelversion mit dem Befehl uname -r überprüfen.

Finden des Problems

Verwenden Sie eine der beiden folgenden Methoden, um festzustellen, ob das Problem auf dem PC auftritt.

  • Suchen Sie nach "PTE Read access is not set"-Kernelmeldungen im Systemjournal:
    1. Öffnen Sie ein neues Terminal-Fenster.
    2. Geben Sie den folgenden Befehl ein:

      journalctl -k | grep -i NO_PASID

    3. Suchen Sie nach Journaleinträgen ähnlich diesem Beispiel:
      Sep 09 14:00:10 my_test_machine kernel: DMAR: [DMA Read NO_PASID] Request device 
      [03:00.0] fault addr 0x1166b8000 [fault reason 0x06] PTE Read access is not set
    4. Korrelieren Sie den Zeitstempel mit einem vorherigen Fehler.

    Um zu überprüfen, ob vor dem letzten Neustart ähnliche Fehler aufgetreten sind, geben Sie stattdessen den folgenden Befehl ein:

    journalctl | grep -i NO_PASID

  • Suchen Sie nach einer Kernelnachricht, die angibt, dass der IOMMU-Standarddomänentyp auf "Translated" eingestellt ist:
    1. Öffnen Sie ein neues Terminal-Fenster.
    2. Geben Sie den Befehl ein:

      journalctl -k | grep -i IOMMU

    3. Suchen Sie nach Journaleinträgen ähnlich diesem Beispiel:
      [ 0.262686] iommu: Default domain type: Translated

Lösung

Die empfohlene Lösung besteht darin, den IOMMU-Standarddomänentyp im Passthrough-Modus zu konfigurieren. Gehen Sie dazu wie folgt vor:

Vorsicht Im Folgenden wird die GRUB-Konfigurationsdatei bearbeitet. NI empfiehlt dringend, vor der Bearbeitung eine Kopie der Datei zu erstellen. Wenn die Datei falsche Daten enthält, wird der PC möglicherweise nicht gestartet.

Die folgende Prozedur enthält keine Schritte zum Erstellen einer Kopie der GRUB-Konfigurationsdatei. Erstellen Sie eine Sicherungskopie der vorhandenen Konfigurationsdatei, bevor Sie die Konfiguration ändern. Lesen Sie den gesamten Prozess, bevor Sie beginnen.

  1. GRUB-Konfigurationsdatei bearbeiten:
    1. Öffnen Sie ein Terminal-Fenster.
    2. Geben Sie an der Kommandozeile folgenden Befehl ein, um die Datei im VI-Editor zu öffnen:

      sudo vi /etc/default/grub

    3. Geben Sie bei entsprechender Aufforderung das Benutzerpasswort ein.
    4. Bewegen Sie den Cursor zu der Linie mit der Variablen.

      GRUB_CMDLINE_LINUX_DEFAULT

    5. Drücken Sie die Taste <i>, um den VI-Editor in den Einfügemodus zu versetzen.
    6. Fügen Sie den Befehl " iommu=pt" hinzu.

      Beispiel: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=pt"

      Hinweis Den vorhandenen Variablendefinitionstext nicht ändern oder löschen. Fügen Sie den Befehl an der im vorherigen Beispiel gezeigten Position hinzu.
    7. Drücken Sie die <Escape>-Taste, um zum Befehlsmodus zurückzukehren.
    8. Speichern Sie die GRUB-Konfigurationsdatei und beenden Sie den VI-Editor mit dem Befehl :wq
  2. Geben Sie im Terminal-Fenster den folgenden Befehl ein, um die GRUB-Konfigurationsdatei neu zu erzeugen:

    sudo update-grub

  3. Starten Sie den Rechner neu.
  4. Vergewissern Sie sich, dass die GRUB-Konfiguration ordnungsgemäß aktualisiert wurde und der IOMMU-Standarddomänentyp auf Passthrough-Modus konfiguriert ist.
    1. Öffnen Sie ein neues Terminal-Fenster.
    2. Geben Sie den Befehl ein:

      journalctl -k | grep -i IOMMU

    3. Suchen Sie nach Journaleinträgen ähnlich diesem Beispiel:
      [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.8.0-41-generic root=UUID=d27287cc-623b-4c29-93ec-23a5eb00177a ro quiet splash iommu=pt vt.handoff=7 
      ...
      [ 0.261029] iommu: Default domain type: Passthrough (set via kernel command line)
Hinweis Wenn Sie Ubuntu 22.04 verwenden, können Sie Kernel 6.5 als Alternative zur empfohlenen Lösung installieren.