01-14-2019 03:04 PM
Is it possible to install DNNDK using a custom OS image on the ZCU102, rather than the one downloaded from the boards website? It seems like it should be possible as my custom OS is aarch64, however when fiddling with the install.sh file, I get an error when trying to insert the dpu.ko kernel module. It also complains about a board type mismatch, but the board is the ZCU102, the OS is of course different. I used yocto and openembedded, as well as custom recipes on top of that for the OS.
Exact error is below, is there any way to fiddle with the kernel modules/install file to install the DNNDK on a custom OS for the ZCU102?
root@zcu102:~/ZCU102# sh install.sh
Begin to install DeePhi DNNDK ...
Board type mismatch.
Install DeePhi DPU Driver ...
modprobe: ERROR: could not insert 'dpu': Exec format error
01-15-2019 10:03 AM - edited 01-15-2019 10:05 AM
Check whether your hostname is zcu102 using uname -n
Figure out kernel version of dpu.ko using modinfo dpu.ko like this
$ modinfo dpu.ko filename: /media/hokim/data/DNNDK/pkgs/driver/dpu.ko author: DEEPHI license: GPL depends: name: dpu vermagic: 4.14.0-xilinx-v2018.2 SMP mod_unload aarch64 parm: signature_addr:ulong parm: extension:ulong parm: cache:int parm: timeout:int parm: mode:charp parm: profiler:int parm: debuglevel:uint parm: version:charp parm: coremask:uint parm: accipmask:uint
Your kernel version should be the same as that of dpu.ko
01-15-2019 10:37 AM
I would like to use DNNDK on a custom OS, so as such I believe I will need to recompile the dpu module with my kernel, is the source code available somewhere to do this? Or can I do it from within the SDSoc?
02-11-2019 08:44 PM
Dear @aluo please let us know one's source code is available publicly, or there is any other way to get the same kernel verion 4.14.0+ I am getting below mentioned error:-
@hokim please can you share me your dpu.ko file, because know we have same kernel version release which you are showing in screen-shoot.
02-12-2019 07:46 AM - edited 02-12-2019 07:47 AM
02-19-2019 03:58 AM
@hokimthanx for the solution now I did the installation of dpu driver on custom os and I also compile and generate the hybrid executable file using make command but the problem is while the time of application running, it is throwing a below-mentioned error any idea about it?
root@zynqmp-iwg30m:/run/media/mmcblk1p1/ZU7/samples/miniVgg# ./miniVgg 1
DNNDK] Allocate DPU memory space in size of [16384 B]
[DNNDK] Failure of DPU memory space used out.
thanx in advance
05-01-2019 08:38 AM
05-01-2019 09:01 AM
05-01-2019 01:26 PM
You can also reference the following tutorial that ports the TRD to the Ultra96 and provides more detailed info on the flow:
05-02-2019 02:30 PM
@aluo thank you! This looks a little difference than I was expecting... it seems to be a vivado project rather than source code for building the DPU kernel module. Did the method for implementing DPU change?
05-02-2019 02:37 PM
The sources for the kernel module are included in the Petalinux BSP delivered with the TRD, and they're also in the repository associated with the DPU Integration Tutorial.
05-03-2019 01:46 PM
05-03-2019 01:50 PM
Petalinux 2018.x is based on rocko. You can find the Yocto version for any Petalinux version at the following wiki page:
05-03-2019 02:02 PM
@terryo One other question - Is there a possibility of writing this as a Yocto layer? That would make it really convenient to include in the project. I'm not totally sure how to incorporate it in a way that would update with the git repository, otherwise.
05-14-2019 01:48 PM
Hi @aluo, is the link you gave me good for an ES (engineering silicon) ZCU102? Just wanted to double check.
To both you and @terryo I've managed to build my OS with the recipes included in the yocto build. My next questions is this: Do I need to import the .hdf file into the build as well? Normal I would take the files from the Yocto build (fsbl, uboot, etc) and then whatever bitstream I want and build a BOOT.BIN in the xilinx SDK. Can I do this here as well with the bitstream file in the code you linked? Or do I need to build the yocto image using the .hdf file from the code you linked. I'm a little bit unclear on exactly how to incorporate that part of things. Thanks!
05-14-2019 02:15 PM
The .hdf includes the bitstream and other metdadata that allows Petalinux/Yocto and Vivado to stay in sync. I believe even with a custom yocto flow there is a reciepe that depends on it. Are you not seeing that?
05-14-2019 03:37 PM
Hi @aluo the board I have is engineering silicon. Does Xilinx not produce code for that board anymore? I can see if I can get my hands on a production silicon board.
@terryo in the past we haven't used a recipe that depends on the .hdf file in the custom yocto flow. We just used the BSP from the meta-xilinx-bsp layer with the machine defintion. In my attemps to figure this out, it looks like meta-xilinx-tools has a recipe that depends on the hdf. Perhaps I'll try to add that layer and see if it works.
05-25-2019 10:24 AM
Hi @terryo . I've managed to integrate the recipes into our custom yocto flow - so I have the dpu.ko module working and inserted (ie shows up in the list given by lsmod). Now I'm trying to get the rest working. The code for the ZCU102 has a prebuilt BOOT.BIN, but I think it was made with 2018.2. Previously I was using a 2017 version to make the BOOT.BIN. If I just throw the prebuilt 2018.2 BOOT.BIN in, the board boot hangs at the line: bootconsole [cdns0] disabled. I'll include the rest of the boot output below. Is this due to a mismatch in kernel/boot loader/device tree versions? Should I try and update my yocto flow from rocko to sumo or thud? Thanks!
06-04-2019 07:03 AM
I hava the same problem when I try to run install.sh for ZCU104 in my custom board. I got the error.
modprobe: ERROR: could not insert 'dpu': Exec format error
To solve this problem, what should I do? Could you explain the step-by-step?