[ 10.545551] zocl: loading out-of-tree module taints kernel.
[ 10.761242] [drm] Probing for xlnx,zocl
[ 10.761304] zocl-drm axi:zyxclmm_drm: IRQ index 0 not found
[ 10.780984] [drm] PR[0] Isolation addr 0x0
[ 10.819819] [drm] Initialized zocl 0.0.0 for axi:zyxclmm_drm on minor 0
I compared the boot logs of Petalinux and PYNQ and found the above content in the logs. It seems that axi:zyxclmm_drm is not used for display output, but it still creates the card0 device.
This has caused some issues for me, as my gui application keeps treating card0 as the output device, resulting in the following log:
[ 48.901160] zocl-drm axi:zyxclmm_drm: zocl_destroy_client: client exits pid(389)
[ 65.591902] zocl-drm axi:zyxclmm_drm: zocl_create_client: created KDS client for pid(653), ret: 0
So, I was wondering if the creation of card0 is caused by some service in PYNQ. If so, is it possible to adjust the service order so that my HDMI driver creates the card0 device first, and then PYNQ uses card1?
I tried modifying my GUI application KlipperScreen to run on minor 1, but for some reason, it really prefers card0. It’s driving me crazy and nearly making me lose my hair! So, is there any way to give card0 back to me?
I designed this board for my 3D printer to run Klipper firmware, and since Klipper also uses Python, it would be awesome to use PYNQ with it. But I’ve been having a lot of trouble with the HDMI display GUI.
Then I’m not sure why that is happening, unfortunately.
On ZU+ devices we “Create a new driver instance bound to card0 which should always be the hardened DisplayPort”. But we don’t do this for Zynq devices. You can see the code for that here.
For ZU+ devices we also include an X11 server so you can use a desktop environment on the board through the display port interface. You can see the x11 package we install here. However, we only install x11 package for ZU+ devices, not for Zynq devices.
Yesterday, I reinstalled PYNQ 3.0.1, and after packaging, card0 still appeared. This is really puzzling to me.
First, my BSP file is indeed set to ARM, and if I were to directly package it as aarch64, I shouldn’t be able to boot the image.
Moreover, PYNQ’s /ps.py uses CPU_ARCH = platform.machine() to obtain the CPU architecture, and when I tested it on the system, it also showed ARM architecture. So, if card0 is created by drm.py, this seems unlikely, doesn’t it?
boot log:
[ 10.176717] zocl: loading out-of-tree module taints kernel.
[ 10.192481] [drm] Probing for xlnx,zocl
[ 10.192576] zocl-drm axi:zyxclmm_drm: IRQ index 0 not found
[ 10.245202] [drm] PR[0] Isolation addr 0x0
[ 10.252532] [drm] Initialized zocl 0.0.0 for axi:zyxclmm_drm on minor 0
&i2c0 {
clock-frequency = <100000>;
status = “okay”;
};
build command:
make clean
make BOARDS=zynq-7020
Here is some additional information I can provide. Is there any other possibility? Should axi:zyxclmm_drm be present on an ARM-based system? Could i remove it?