cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
5,114 Views
Registered: ‎08-16-2017

Installation issue of xilinx driver for pcie dma

Jump to solution

Hi,

 

I am trying to install the Linux driver for dma subsystem for pcie.

When I am trying to run the first command : make (in driver directory) - I get the following error :

implication declaration of function 'pci_enable_msix'

The make command is not generating files. I have attached a screenshot of the error.

Please let me know how to resolve this.

I was able to install the driver in Windows though!

 

Thank you.

Screenshot from 2018-06-13 14-24-46.png
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
5,054 Views
Registered: ‎02-11-2014

Hello @vivek,

 

It looks like the SSL issue you are having can be resolved via this article: https://github.com/andikleen/simple-pt/issues/8

 

Here is also some amended readme steps that worked for me:

 

  1. Download Xilinx_Answer_65444_Linux_Files_rel20180420.zip
  2. Move Xilinx_Answer_65444_Linux_Files_rel20180420.zip locally to my linux machine
  3. Unzip Xilinx_Answer_65444_Linux_Files_rel20180420.zip
  4. chmod 777 Xilinx_Answer_65444_Linux_Files_rel20180420 -R
    1. This step is crucial as I could not run make install with sudo.. I kept getting permission denied as sudo…
  5. cd into Xilinx_Answer_65444_Linux_Files_rel20180420/xdma
  6. ‘sudo make install’
    1. ‘make install’ did not work…
  7. ‘cd ../tools’
  8. ‘make’
    1. ‘sudo make’ did not work…
  9. Skip the etc step
    1. There is not etc folder with the driver…
  10. ‘modprobe xdma’
  11. ‘cd ../tests’
  12. ‘sudo ./load_driver.sh’
    1. ‘./load_driver.sh’ did not work…
  13. ‘sudo ./run_test.sh’
    1. ‘./run_test.sh’ did not work…
  14. ‘modinfo xdma’

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

21 Replies
Highlighted
Explorer
Explorer
5,062 Views
Registered: ‎08-16-2017

Does anyone have a solution for that? I am stuck in this issue for 2 days!

0 Kudos
Highlighted
Moderator
Moderator
5,044 Views
Registered: ‎02-11-2014

Hello @vivek

 

Please try just running 'make' from within the driver folder. If that doesn't work, then login to the machine using 'su' and put in your password. Then try running 'make'

 

Does this allow you to install the driver?

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Highlighted
Explorer
Explorer
5,035 Views
Registered: ‎08-16-2017

Hi @coryb - thank you for the response.

 

Well, I do run make in the driver folder. I type in the terminal- sudo make.

No, I am not able to install the drivers. Because I am getting error in the make file and therefore, I am not able to generate the files which are required when you load the driver using ./load_driver.sh.

Please let me know why I am getting this error -

implicit declaration of function pci_enable_msix 

 

Thank you.

0 Kudos
Highlighted
Moderator
Moderator
5,023 Views
Registered: ‎02-11-2014

Hello @vivek,

 

I meant to say just run ‘make’ not ‘sudo make’ while logged in as ‘su’ And see if that works. If it doesn’t then logout of ‘su’ and then just try running ‘make’ and not ‘sudo make’ to see if it can install without sudo.

 

Also which version of the driver are you using? The latest Windows driver was updated back in January, please make sure you are using this version.

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
Explorer
Explorer
4,980 Views
Registered: ‎08-16-2017

I have tried with and without sudo. I cannot do su, I think ubuntu doesn't allow su from now.

I got into the root account by sudo -i command and tried to run make but still got the error.

I am trying to install this in linux - ubuntu. There are two versions of linux driver provided in AR#65444. 

The first driver( Xlinx_Driver_65444gives ) gives me the same error. In the second linux driver (Linux_Files_rel20140420) there is no etc folder.

 

Should I copy the etc folder from the first driver to the second driver and give it a try?

 

 

0 Kudos
Highlighted
Explorer
Explorer
4,941 Views
Registered: ‎08-16-2017

Hi @coryb,

 

I copied the etc folder from the first driver files to the second driver files. And then I typed the following command -

disable mokutil --disable- validation to disable driver signature enforcement.

After that, I was able to install the driver and device was recognized after several attempts. But then, the next day when I tried to run the ./load.driver.sh command, the device was not recognized. May I know a permanent solution to this issue?

 

Thank you.

0 Kudos
Highlighted
Moderator
Moderator
4,937 Views
Registered: ‎02-11-2014

Hello @vivek,

 

Our drivers are unsigned, but this is usually only an issue with Windows machines i.e. you need to boot windows with "driver signature enforcement" disabled in order for them to be installed/used correctly. I have not seen this be a problem in Linux before. Which exact version of Linux are you using?

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
Explorer
Explorer
4,931 Views
Registered: ‎08-16-2017

Its ubuntu 16.04.4 LTS

 

0 Kudos
Highlighted
Explorer
Explorer
4,917 Views
Registered: ‎08-16-2017

Is this version compatible with the xdma driver?

0 Kudos
Highlighted
Explorer
Explorer
5,021 Views
Registered: ‎08-16-2017

Also, this is a screen shot of the pci devices connected to the computer.

You can see it recognizes two xilinx devices with different device ids. The device id to be recognized should be 8038.

Please correct me if I am wrong!

 

 

lspci_screen_shot.png
0 Kudos
Highlighted
Explorer
Explorer
4,989 Views
Registered: ‎08-16-2017

Hi @coryb -

 

I think I have found a solution to the issue. These are the following steps I am doing, correct me if I am wrong-

1. I downloaded the zip file Xilinx_Answer_65444_Linux_Files_rel20180420 and unzipped it.

2. I found there was no etc folder so I copied the etc folder from the other Linux driver Xilinx_Answer_65444 zip folder.

3. Then by reading the read me file, I followed all the steps right from the make command all the way to the                                  cp ../etc/udev/rules.d/* /etc/udev/rules.d/ 

4. Then I opened Vivado and programmed the KCU 1500 board.

5. Restarted the computer

6. Then opened the terminal in the tests folder and typed the command: sudo ./load_driver.sh

Now the driver was installed and xdma device was recognized.

 

Please let me know if I am missing anything!

 

Thank you.

0 Kudos
Highlighted
Observer
Observer
4,959 Views
Registered: ‎07-23-2013

Hi, I just ran into this issue too.

 

It looks like the function 'pci_enable_msix' was removed from the kernel in version 4.12 but the function 'pxi_enable_msix_exact' performs the same functions.

 

 

If you want to find out if you need to change your driver just open up a terminal and type:

 

uname -r

 

It will return the kernel version, in my case: '4.13.0-45-generic'

 

In order to fix this issue you just need to open up the file 'xdma-core.c', go to line 4324 and replace

 

rc = pci_enable_msix(pdev, lro->entry, req_nvec);

 

with

 

rc = pci_enable_msix_exact(pdev, lro->entry, req_nvec);

 

 

Dave

Highlighted
Explorer
Explorer
4,945 Views
Registered: ‎08-16-2017

Hi @cospandesign - Thank you for your response.

 

My kernel version is 4.13.0-45-generic which is same as yours.

I did change the pci_enable_msix to pci_enable_msix_exact, and by doing that I was able to perform make with no errors!

But at the end when I run load_driver.sh , I am still facing the same issue. 

 

Error: The kernel module installed correctly, but no devices were recognized!

 

I think this can be a system issue. Do you have any suggestion?

 

Thank you.

0 Kudos
Highlighted
Moderator
Moderator
4,936 Views
Registered: ‎02-11-2014

Hello @vivek,

 

The driver instruction in the Linux PDF are for the old driver (Xilinx_Answer_65444_Linux_Files.zip) and not the current driver(Xilinx_Answer_65444_Linux_Files_rel2018042.zip)

 

Please use the readme.txt that is delivered with the new driver to install/use it properly. We are working on updating the Linux PDF as soon as we can.

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Highlighted
Explorer
Explorer
4,931 Views
Registered: ‎08-16-2017

@coryb - Thank you for the response.

 

In the current driver, there is no etc folder which I can copy to the etc folder of the system.

Should I copy the etc folder from the old driver in the new driver?

0 Kudos
Highlighted
Moderator
Moderator
4,927 Views
Registered: ‎02-11-2014

Hello @vivek,

 

The "copy etc" step is no longer required. I know it is in the new readme.txt but it shouldn't be there... Try the following steps.

Usage:
  - Change directory to the driver directory.
        cd xdma
  - Compile and install the kernel module driver.
        make install
  - Change directory to the tools directory.
        cd tools
  - Compile the provided example test tools.
        make
  - Copy the provided driver rules from the etc directory to the /etc/ directory
    on your system.
        cp ../etc/udev/rules.d/* /etc/udev/rules.d/
  - Load the kernel module driver:
    a. modprobe xdma
    b. using the provided script.
        cd tests
            ./load_driver.sh
  - Run the provided test script to generate basic DMA traffic.
        ./run_test.sh
  - Check driver Version number
        modinfo xdma (or)
        modinfo ../xdma/xdma.ko  

 

Thanks,

Cory

 

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Highlighted
Explorer
Explorer
4,922 Views
Registered: ‎08-16-2017

When I do make install from the terminal I get the SSL error. Should I be concerned about it?

 

sudo make install
Makefile:10: XVC_FLAGS: .
make -C /lib/modules/4.13.0-45-generic/build M=/home/vivek/Desktop/Xilinx_Answer_65444_Linux_Files_rel20180420/xdma modules
make[1]: Entering directory '/usr/src/linux-headers-4.13.0-45-generic'
/home/vivek/Desktop/Xilinx_Answer_65444_Linux_Files_rel20180420/xdma/Makefile:10: XVC_FLAGS: .
Building modules, stage 2.
/home/vivek/Desktop/Xilinx_Answer_65444_Linux_Files_rel20180420/xdma/Makefile:10: XVC_FLAGS: .
MODPOST 1 modules
make[1]: Leaving directory '/usr/src/linux-headers-4.13.0-45-generic'
make -C /lib/modules/4.13.0-45-generic/build M=/home/vivek/Desktop/Xilinx_Answer_65444_Linux_Files_rel20180420/xdma modules_install
make[1]: Entering directory '/usr/src/linux-headers-4.13.0-45-generic'
INSTALL /home/vivek/Desktop/Xilinx_Answer_65444_Linux_Files_rel20180420/xdma/xdma.ko
At main.c:160:
- SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178
sign-file: certs/signing_key.pem: No such file or directory
DEPMOD 4.13.0-45-generic
make[1]: Leaving directory '/usr/src/linux-headers-4.13.0-45-generic'

 

Thank you

0 Kudos
Highlighted
Explorer
Explorer
4,918 Views
Registered: ‎08-16-2017

@coryb - Unfortunately, I am still facing the same issue. I have attached the terminal screen shot.

Do I have to remove the board from the PCIe while doing this process, do  I have to restart the computer?

Please let me know. I appreciate all your help!

 

Thank you.

xdma_driver.png
0 Kudos
Highlighted
Moderator
Moderator
5,055 Views
Registered: ‎02-11-2014

Hello @vivek,

 

It looks like the SSL issue you are having can be resolved via this article: https://github.com/andikleen/simple-pt/issues/8

 

Here is also some amended readme steps that worked for me:

 

  1. Download Xilinx_Answer_65444_Linux_Files_rel20180420.zip
  2. Move Xilinx_Answer_65444_Linux_Files_rel20180420.zip locally to my linux machine
  3. Unzip Xilinx_Answer_65444_Linux_Files_rel20180420.zip
  4. chmod 777 Xilinx_Answer_65444_Linux_Files_rel20180420 -R
    1. This step is crucial as I could not run make install with sudo.. I kept getting permission denied as sudo…
  5. cd into Xilinx_Answer_65444_Linux_Files_rel20180420/xdma
  6. ‘sudo make install’
    1. ‘make install’ did not work…
  7. ‘cd ../tools’
  8. ‘make’
    1. ‘sudo make’ did not work…
  9. Skip the etc step
    1. There is not etc folder with the driver…
  10. ‘modprobe xdma’
  11. ‘cd ../tests’
  12. ‘sudo ./load_driver.sh’
    1. ‘./load_driver.sh’ did not work…
  13. ‘sudo ./run_test.sh’
    1. ‘./run_test.sh’ did not work…
  14. ‘modinfo xdma’

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

Highlighted
Explorer
Explorer
4,309 Views
Registered: ‎08-16-2017

@coryb - Thank you.

0 Kudos
Highlighted
Observer
Observer
2,655 Views
Registered: ‎02-23-2019

Hi Cory,

Will the drivers valid for Dual-Port QSFP+ Server NIC Card - PCI Express - Intel XL710 Chip https://www.startech.com/de/en/Networking-IO/Adapter-Cards/dual-port-qsfp-nic-card~PEX40GQSFDPI

- on the FPGA, XDMA for PCIe ip code is running on the QSFP+ interface

- on the PC, Intel XL710 chip is plugged in to transfer the data.

from linux terminal: lspci

00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)
00:1c.1 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 (rev d4)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation C226 Series Chipset Family Server Advanced SKU LPC Controller (rev 04)
00:1f.2 RAID bus controller: Intel Corporation SATA Controller [RAID mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)
01:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)
01:00.1 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)
03:00.0 PCI bridge: Texas Instruments XIO2001 PCI Express-to-PCI Bridge
04:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller (rev 10)

0 Kudos