Artikel-ID: 000095678 Inhaltstyp: Fehlermeldungen Letzte Überprüfung: 18.06.2024

Warum kann der R-Tile Avalon® Streaming FPGA IP für PCI Express* Beispieltreiber nicht korrekt installiert werden? Es kann nicht in CentOS* 8 installiert werden?

Umgebung

  • Intel® Quartus® Prime Pro Edition
  • OS Independent family

    BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Beschreibung

    Beim Versuch, den vom R-Tile Avalon® Streaming FPGA IP for PCI Express* Designbeispiel in CentOS* 8 generierten Beispieltreiber zu installieren, werden Fehlermeldungen wie die unten gezeigten angezeigt:

    Fehler: Makro "access_ok" hat 3 Argumente übergeben, benötigt aber nur 2

    if(! access_ok(VERIFY_WRITE, buf, sizeof(buf))) {

    Fehler: "access_ok" nicht deklariert (erste Verwendung in dieser Funktion)

    if(! access_ok(VERIFY_WRITE, buf, sizeof(buf))) {

    Lösung

    Eine Nichtübereinstimmung des Linux*-Kernels verursacht diese Fehler. Die folgenden Schritte können helfen, dieses Problem zu beheben:

    • In intel_fpga_pcie_chr.c ist das erste Argument (VERIFY_WRITE/VERIFY_READ) der Funktion "access_ok" zu streichen.
    • Ersetzen Sie in intel_fpga_pcie_ioctl.c den Namen der Funktion "dma_zalloc_coherent" durch "dma_alloc_coherent"
    • Ändern Sie in intel_fpga_pcie_ioctl.c in "access_ok(uarg, sizeof(uarg))" das Argument uarg in (void__user *)uarg
    • Ersetzen Sie in intel_fpga_pcie_setup.c den Namen der Funktion "ioremap_nocache" durch "ioremap_cache".
    • Kommentieren Sie in intel_fpga_pcie_setup.c die Codezeile "MODULE_SUPPORTED_DEVICE("Intel(R) Stratix 10 FPGA")"

    Der Treiber kann erfolgreich installiert werden und funktioniert nach diesen Änderungen ordnungsgemäß.

    Die Behebung dieses Problems ist derzeit nicht geplant.

    Zugehörige Produkte

    Dieser Artikel bezieht sich auf 2 Produkte

    Intel® Agilex™ FPGAs und SoC FPGAs der I-Reihe
    Intel® Agilex™ FPGA Development Kit der I-Reihe

    Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.