【问题标题】:Trying to install de5a_net_i2 driver using 'aocl install' but failed尝试使用 'aocl install' 安装 de5a_net_i2 驱动程序但失败
【发布时间】:2019-03-12 11:49:40
【问题描述】:

我正在尝试安装 DE5-NET FPGA 的驱动程序。我在 Ubuntu 16.04 上使用面向 OpenCL 16.0 的英特尔 FPGA SDK。

aoc --list-boards 给出输出de5a_net_e1

但是在这一步之后,当我尝试运行 aocl install 时,我得到了

aocl install: Running install from /media/siladittya/fdc481ce-9355-46a9-b381-9001613e3422/siladittya/Softwares/AOCL/hld/board/de5a_net_e1/linux64/libexec
/media/siladittya/fdc481ce-9355-46a9-b381-9001613e3422/siladittya/Softwares/AOCL/hld/board/de5a_net_e1/linux64/libexec/install: 9: [: aclpci_de5a_net_e1_drv: unexpected operator
Using kernel source files from  /lib/modules/4.15.0-45-generic/build
Building driver for BSP with name de5a_net_e1
make: Entering directory '/usr/src/linux-headers-4.15.0-45-generic'
  CC [M]  /tmp/opencl_driver_L6IMju/aclpci_queue.o
  CC [M]  /tmp/opencl_driver_L6IMju/aclpci.o
/tmp/opencl_driver_L6IMju/aclpci.c: In function ‘aclpci_irq’:
/tmp/opencl_driver_L6IMju/aclpci.c:337:17: error: implicit declaration of function ‘send_sig_info’ [-Werror=implicit-function-declaration]
       int ret = send_sig_info(SIG_INT_NOTIFY, &aclpci->signal_info, aclpc
                 ^
cc1: some warnings being treated as errors
scripts/Makefile.build:332: recipe for target '/tmp/opencl_driver_L6IMju/aclpci.o' failed
make[1]: *** [/tmp/opencl_driver_L6IMju/aclpci.o] Error 1
Makefile:1551: recipe for target '_module_/tmp/opencl_driver_L6IMju' failed
make: *** [_module_/tmp/opencl_driver_L6IMju] Error 2
make: Leaving directory '/usr/src/linux-headers-4.15.0-45-generic'
aocl install: failed.

我尝试将 BSP 用于 board 文件夹中给出的其他默认值,但得到了相同的错误。

我猜当遇到警告时安装正在停止。

error: implicit declaration of function ‘send_sig_info’ [-Werror=implicit-function-declaration]

如何解决这个问题?

有什么办法吗?

【问题讨论】:

    标签: linux opencl intel fpga intel-fpga


    【解决方案1】:

    新的 linux 内核进行了一些更改,并删除了一些不推荐使用的结构和方法。我必须更改 a10_ref 驱动程序源文件才能成功编译。 您可以对您的电路板进行相同的更改:

    ~/intelFPGA_pro/19.2/hld/board/a10_ref/linux64/driver:

        aclpci.c:
    -    340   int ret = send_sig_info(aclpci->signal_number, &aclpci->signal_info, aclpci->user_task);
    +   340    struct kernel_siginfo *tmp_alcpci_sig_inf = &aclpci->signal_info;
    +   341    int ret = send_sig_info(aclpci->signal_number, tmp_alcpci_sig_inf, aclpci->user_task);
    ---
    - 371     struct siginfo *info = &aclpci->signal_info;
    + 372      struct kernel_siginfo *info = &aclpci->signal_info;
    ==============
    aclpci.h:
    - 172   struct siginfo signal_info;
    - 173   struct siginfo signal_info_dma;
    + 172   struct kernel_siginfo signal_info;
    + 173   struct kernel_siginfo signal_info_dma;
    ==============
    aclpci_dma.c:
    - 75   #include <linux/time.h>
    + 75  #include <linux/ktime.h>
    ---
    - 270     struct timeval us_end_time;
    + 270     struct timespec64 us_end_time;
    ---
    - 287    do_gettimeofday(&us_end_time);
    + 287    ktime_get_ts64(&us_end_time);
    ---
    -289    useconds = us_end_time.tv_usec - d->m_us_dma_start_time.tv_usec;
    -290    ACL_VERBOSE_DEBUG (KERN_DEBUG "Last table transfer measured %06ld usec :: check seconds %ld should be zero", useconds, seconds);
    +289    useconds = us_end_time.tv_nsec - d->m_us_dma_start_time.tv_nsec;
    +290    ACL_VERBOSE_DEBUG (KERN_DEBUG "Last table transfer measured %06ld nsec :: check seconds %ld should be zero", useconds, seconds);
    ---
    -977        do_gettimeofday(&(d->m_us_dma_start_time));
    +977        ktime_get_ts64(&(d->m_us_dma_start_time));
    ==============
    aclpci_dma.h:
    -204  struct timeval m_us_dma_start_time;
    +204  struct timespec64 m_us_dma_start_time;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 1970-01-01
      • 2017-07-04
      • 2014-09-21
      • 1970-01-01
      相关资源
      最近更新 更多