Попытка установить драйвер de5a_net_i2 с помощью 'aocl install', но не удалась

Я пытаюсь установить драйвер для DE5-NET FPGA. Я использую Intel FPGA SDK для OpenCL 16.0 в Ubuntu 16.04.

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]

Как исправить эту проблему?

Любое решение?

0 ответов

В новом ядре Linux внесены некоторые изменения и удалены некоторые устаревшие структуры и методы. Для успешной компиляции мне пришлось внести изменения в исходные файлы драйвера a10_ref. Вы можете внести те же изменения в свою доску:

~/intelFPGA_pro/19.2/hld/board/a10_ref/linux64/ драйвер:

    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;
Другие вопросы по тегам