Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Valued Contributor III
2,314 Views

a10gx board installation on Linux system - errors

An a10gx board previously used on a Windows machine with a 16.1_pro package w/o any problems (installed, initialized (flash was programmed with 'acl0 boardtest.aocx', loaded and ran 'hello-world' and 'vector_addition') is now intended for use on a Linux machine with the 17.0 package, The variables on this Linux system are pretty standard: 

 

QUARTUS_BASEDIR=/local/home/evgeniy/intelFPGA_pro/17.0/ 

QUARTUS_ROOTDIR=/local/home/evgeniy/intelFPGA_pro/17.0/quartus 

QSYS_ROOTDIR=/local/home/evgeniy/intelFPGA_pro/17.0/qsys/bin 

 

ALTERAOCLSDKROOT=/local/home/evgeniy/intelFPGA_pro/17.0/hld 

AOCL_BOARD_PACKAGE_ROOT=/local/home/evgeniy/intelFPGA_pro/17.0/hld/board/a10_ref 

 

PATH=$PATH:$QUARTUS_ROOTDIR:$QUARTUS_ROOTDIR/bin:$QSYS_ROOTDIR:$ALTERAOCLSDKROOT/bin:$AOCL_BOARD_PACKAGE_ROOT/linux64/lib 

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ALTERAOCLSDKROOT/host/linux64/lib:$AOCL_BOARD_PACKAGE_ROOT/linux64/lib 

 

The system is able to see the board with the 'aoc --list-boards' command. However, the installation with 'aocl install' fails. Please, see attached screenshot. 

'aocl-diagnose' also fails. 

 

Any suggestions? 

 

Thank you!
0 Kudos
12 Replies
Highlighted
Valued Contributor III
20 Views

The screenshot is too small to see anything in it but it seems you are getting some errors during the compilation of the kernel driver; my guess is that you are using an unsupported Linux or Linux kernel. Even though v17.0 now officially supports Ubuntu, I recommend sticking with CentOS v6.x or v7.x. The PCI-E driver will fail to compile on any other Linux.

0 Kudos
Highlighted
Valued Contributor III
20 Views

Thank you. Interesting... The 'hello_world' example compiles into the .aocx file with 17.0 and this particular version of Ubuntu. I checked out of curiosity.

0 Kudos
Highlighted
Valued Contributor III
20 Views

The compiler itself will probably work with any Linux distribution and any Linux kernel; the problem is the PCI-E driver which will only compile on supported OSes/OS kernels.

0 Kudos
Highlighted
Valued Contributor III
20 Views

Do I then need the 'Everything' CentOS version or the 'Minimal' will be sufficient?

0 Kudos
Highlighted
Valued Contributor III
20 Views

Also, will CentOS install as a virtual machine work?

0 Kudos
Highlighted
Valued Contributor III
20 Views

Minimal CentOS should work, but you obviously need basic packages that are needed for compilation (make, gcc, etc.) 

 

Virtual Machine will certainly not work since you won't have access to the PCI-E ports from the VM. 

 

Note that you don't have to install CentOS on your development machine; you can just put the board on a CentOS machine but design, test and compile the kernels on your development machine and then transfer the aocx binary and the host code to the CentOS machine and compile the host code and run the kernel on the FPGA. 

 

P.S. Since v17.0 is supposed to officially support Ubuntu, you can always open a support ticket with Altera and complain as to why the PCI-E driver does not compile on a supported OS.
0 Kudos
Highlighted
Valued Contributor III
20 Views

Could it be because Altera is incompetent ? 

 

My experience so far is the following: 

 

1.) The A10 GX board does not fit inside my machine. It appears to not conform to PCIe standards, the cooling fans overlap the next PCI slot, the card is too high, and possibly also too long. (I had to completely deconstruct my workstation to get the card to fit into the PCIe slot. 

2.) The installation instructions are completely unclear, and there appear to be multiple versions of the instructions for the same Dev kit. 

3.) The installation instructions contain incorrect characters in Text fields meant to be copied. Clearly nobody has tested that copying and pasting of the commands works. 

4.) The installation instructions don't actually work. I had to find a file named board_env.xml and copy it into the AOCL_BOARD_PACKAGE_ROOT directory. It should have been there already. 

4.) Installation instructions fail: aocl flash command produces "No flash routine supplied."  

 

Who does the quality control for this stuff ?
0 Kudos
Highlighted
Valued Contributor III
20 Views

 

--- Quote Start ---  

Could it be because Altera is incompetent ? 

 

My experience so far is the following: 

 

1.) The A10 GX board does not fit inside my machine. It appears to not conform to PCIe standards, the cooling fans overlap the next PCI slot, the card is too high, and possibly also too long. (I had to completely deconstruct my workstation to get the card to fit into the PCIe slot. 

2.) The installation instructions are completely unclear, and there appear to be multiple versions of the instructions for the same Dev kit. 

3.) The installation instructions contain incorrect characters in Text fields meant to be copied. Clearly nobody has tested that copying and pasting of the commands works. 

4.) The installation instructions don't actually work. I had to find a file named board_env.xml and copy it into the AOCL_BOARD_PACKAGE_ROOT directory. It should have been there already. 

5.) Installation instructions fail: aocl flash command produces "No flash routine supplied."  

 

Who does the quality control for this stuff ? 

--- Quote End ---  

 

 

I think that# 4 below will fix your aocl flash problem, as I had a similar problem at one point. I had problems with Quartus Pro 17 in the past, and moved to Quartus Pro 16.0 and successfully ran the basic boardtest.aocx (found below). I'm now trying Quartus Pro 17.0 again for the potential speed improvements, but I am not able to get things working, much the same as you. I'm experiencing a new problem now that I'd love help on if anyone has an idea. 

 

Running: Quartus Pro 17.0, Centos 7, Arria 10 GX Development Board. 

 

 

  1. I had similar problems, but got the PCIe slot to work as well. 

     

  2. The install instructions to follow are in the following link. https://www.altera.com/documentation/tgy1490191698959.html 

     

  3. Don't copy the commands from the text in the link. You are correct in that they contain characters that do not work. Type the commands as they look.  

  4. When it says to uncompress the “ALTERAOCLSDKROOT/boards/a10_ref/bringup/a10_ref_initialization.tgz” to a temporary directory, make sure that the temporary directory is the “ALTERAOCLSDKROOT/boards/a10_ref/bringup” directory. Make a copy of the bringup directory first if you'd like.  

 

 

The problem I am now having is with "aocl diagnose" which returns "found no active devices installed on the host machine" and then 5 options, none of which are working. My output is below (username replaced by <user>) and I was running the terminal in ~/intelFPGA_pro/17.0/hld/board/a10_ref/bringup. 

 

[<user>@localhost bringup]$ su 

Password:  

[root@localhost bringup]# aocl install 

aocl install: Running install from /home/<user>/intelFPGA_pro/17.0/hld/board/a10_ref/linux64/libexec 

Looking for kernel source files in /lib/modules/3.10.0-514.26.2.el7.x86_64/build 

Using kernel source files from /lib/modules/3.10.0-514.26.2.el7.x86_64/build 

Building driver for BSP with name a10_ref 

make: Entering directory `/usr/src/kernels/3.10.0-514.26.2.el7.x86_64' 

CC [M] /tmp/opencl_driver_9PtW0d/aclpci_queue.o 

CC [M] /tmp/opencl_driver_9PtW0d/aclpci.o 

CC [M] /tmp/opencl_driver_9PtW0d/aclpci_fileio.o 

CC [M] /tmp/opencl_driver_9PtW0d/aclpci_dma.o 

CC [M] /tmp/opencl_driver_9PtW0d/aclpci_pr.o 

CC [M] /tmp/opencl_driver_9PtW0d/aclpci_cmd.o 

LD [M] /tmp/opencl_driver_9PtW0d/aclpci_a10_ref_drv.o 

Building modules, stage 2. 

MODPOST 1 modules 

CC /tmp/opencl_driver_9PtW0d/aclpci_a10_ref_drv.mod.o 

LD [M] /tmp/opencl_driver_9PtW0d/aclpci_a10_ref_drv.ko 

make: Leaving directory `/usr/src/kernels/3.10.0-514.26.2.el7.x86_64' 

[root@localhost bringup]# exit 

exit 

[<user>@localhost bringup]$ aocl diagnose 

aocl diagnose: Running diagnose from /home/<user>/intelFPGA_pro/17.0/hld/board/a10_ref/linux64/libexec 

aocl diagnose: failed 32 times. First error below: 

Vendor: Intel(R) Corporation 

 

Found no active device installed on the host machine. 

 

Please make sure to:  

1. Set the environment variable AOCL_BOARD_PACKAGE_ROOT to the correct board package. 

2. Install the driver from the selected board package. 

3. Properly install the device in the host machine. 

4. Configure the device with a supported OpenCL design. 

5. Reboot the machine if the PCI Express link failed. 

 

DIAGNOSTIC_FAILED 

 

[<user>@localhost bringup]$  

0 Kudos
Highlighted
Valued Contributor III
20 Views

@c.peterson.intel, the instructions in the page you linked are completely correct and accurate, and if they are followed properly, everything will work correctly. You can extract the "a10_ref_initialization.tgz" file anywhere you want; you should just make sure to run the quartus_pgm commands from that folder. That is all. 

 

The fact that your board is not detected is more likely than not because you did not correctly follow the procedure for programming the board via JTAG and rebooting your machine (one soft and one hard reboot).
0 Kudos
Highlighted
Valued Contributor III
20 Views

I discovered - quite by accident - that *NOT* performing the soft reboot (Step 5) is essential. 

 

I skipped that step, and performed the next step (Step 6), and suddenly everything started working. 

 

I have no idea why that would be, other than that the A10 board somehow loses all the configuration you send to it via the jtag command after the soft reboot and before "aocl flash acl0 boardtest.aocx" step.
0 Kudos
Highlighted
Valued Contributor III
20 Views

Back to a10gx installation. Got my RedHat 7.3 workstation. All variables, which worked in Ubuntu copied to this setup and edited accordingly. When running 'aocl install' getting the following: 

 

$ aocl install 

aocl install: Running install from /home/usd16869/intelFPGA_pro/17.0/hld/board/a10_ref/linux64/libexec 

Looking for kernel source files in /lib/modules/3.10.0-514.el7.x86_64/build 

Using kernel source files from /lib/modules/3.10.0-514.el7.x86_64/build 

Building driver for BSP with name a10_ref 

make: Entering directory `/usr/src/kernels/3.10.0-514.el7.x86_64' 

CC [M] /tmp/opencl_driver_0Vk6Yp/aclpci_queue.o 

CC [M] /tmp/opencl_driver_0Vk6Yp/aclpci.o 

CC [M] /tmp/opencl_driver_0Vk6Yp/aclpci_fileio.o 

CC [M] /tmp/opencl_driver_0Vk6Yp/aclpci_dma.o 

CC [M] /tmp/opencl_driver_0Vk6Yp/aclpci_pr.o 

CC [M] /tmp/opencl_driver_0Vk6Yp/aclpci_cmd.o 

LD [M] /tmp/opencl_driver_0Vk6Yp/aclpci_a10_ref_drv.o 

Building modules, stage 2. 

MODPOST 1 modules 

CC /tmp/opencl_driver_0Vk6Yp/aclpci_a10_ref_drv.mod.o 

LD [M] /tmp/opencl_driver_0Vk6Yp/aclpci_a10_ref_drv.ko 

make: Leaving directory `/usr/src/kernels/3.10.0-514.el7.x86_64' 

[sudo] password for usd16869:  

Couldn't create directory '/opt/Intel' 

ERROR: Permission denied 

Unable to set up FCD. Please contact your board vendor or see section "Linking Your Host Application to the Khronos ICD Loader Library" of the Programming Guide for instructions on manual setup. 

 

'aoc --list-boards' command sees the board. 

 

i tried to change permission to the entire 'intelFPGA_pro' directory tree, but got similar result. Also, as suggested in the aocl_programming_guide' edited the makefile in the board/a10_ref/source directory to include the following: 

 

AOCL_LDFLAGS=$(shell aocl ldflags) 

AOCL_LDLIBS=$(shell aocl ldlibs) 

host_prog : host_prog.o 

g++ -o host_prog host_prog.o $(AOCL_LDFLAGS) -lOpenCL $(AOCL_LDLIBS) 

 

 

Still the same error. What can be wrong now? 

 

Thanks!
0 Kudos
Highlighted
Valued Contributor III
20 Views

@Gene, the driver MUST be installed using the root account.

0 Kudos